Кастомизация профиля (о себе, аватар) и просмотр профилей других игроков + общая статистика

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-17 17:27:24 +03:00
co-authored by Claude Opus 4.8
parent b302ec769a
commit 96daddae05
22 changed files with 1106 additions and 23 deletions
+1
View File
@@ -6,6 +6,7 @@ export const qk = {
expansions: ["expansions"] as const,
factions: ["factions"] as const,
myStats: ["myStats"] as const,
publicProfile: (id: number) => ["publicProfile", id] as const,
groups: ["groups"] as const,
group: (id: number) => ["group", id] as const,
groupFactions: (id: number) => ["group", id, "factions"] as const,
+249
View File
@@ -105,6 +105,75 @@ export interface paths {
patch: operations["update_me_api_users_me_patch"];
trace?: never;
};
"/api/users/me/profile": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
/** Update My Profile */
patch: operations["update_my_profile_api_users_me_profile_patch"];
trace?: never;
};
"/api/users/me/avatar": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
/** Upload My Avatar */
put: operations["upload_my_avatar_api_users_me_avatar_put"];
post?: never;
/** Delete My Avatar */
delete: operations["delete_my_avatar_api_users_me_avatar_delete"];
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/users/{user_id}/avatar": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Get User Avatar */
get: operations["get_user_avatar_api_users__user_id__avatar_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/users/{user_id}/profile": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Get User Profile */
get: operations["get_user_profile_api_users__user_id__profile_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/users/me/stats": {
parameters: {
query?: never;
@@ -843,6 +912,11 @@ export interface components {
/** Telegram Bot Username */
telegram_bot_username?: string | null;
};
/** Body_upload_my_avatar_api_users_me_avatar_put */
Body_upload_my_avatar_api_users_me_avatar_put: {
/** File */
file: string;
};
/** DevLogin */
DevLogin: {
/** Nickname */
@@ -1097,6 +1171,8 @@ export interface components {
nickname: string;
/** Rank */
rank?: number | null;
/** Avatar Url */
avatar_url?: string | null;
};
/** MatchCreate */
MatchCreate: {
@@ -1272,6 +1348,10 @@ export interface components {
telegram_id?: number | null;
/** Active Group Id */
active_group_id?: number | null;
/** Bio */
bio?: string | null;
/** Avatar Url */
avatar_url?: string | null;
/**
* Groups
* @default []
@@ -1363,6 +1443,23 @@ export interface components {
*/
recent_form: components["schemas"]["RecentFormItem"][];
};
/** ProfileUpdate */
ProfileUpdate: {
/** Bio */
bio?: string | null;
};
/** PublicProfile */
PublicProfile: {
/** User Id */
user_id: number;
/** Nickname */
nickname: string;
/** Bio */
bio?: string | null;
/** Avatar Url */
avatar_url?: string | null;
stats: components["schemas"]["ProfileStats"];
};
/** RandomizeRequest */
RandomizeRequest: {
/** Group Id */
@@ -1452,6 +1549,10 @@ export interface components {
telegram_id?: number | null;
/** Active Group Id */
active_group_id?: number | null;
/** Bio */
bio?: string | null;
/** Avatar Url */
avatar_url?: string | null;
};
/** ValidationError */
ValidationError: {
@@ -1634,6 +1735,154 @@ export interface operations {
};
};
};
update_my_profile_api_users_me_profile_patch: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["ProfileUpdate"];
};
};
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["MeRead"];
};
};
/** @description Validation Error */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
upload_my_avatar_api_users_me_avatar_put: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"multipart/form-data": components["schemas"]["Body_upload_my_avatar_api_users_me_avatar_put"];
};
};
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["MeRead"];
};
};
/** @description Validation Error */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
delete_my_avatar_api_users_me_avatar_delete: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["MeRead"];
};
};
};
};
get_user_avatar_api_users__user_id__avatar_get: {
parameters: {
query?: never;
header?: never;
path: {
user_id: number;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": unknown;
};
};
/** @description Validation Error */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
get_user_profile_api_users__user_id__profile_get: {
parameters: {
query?: never;
header?: never;
path: {
user_id: number;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["PublicProfile"];
};
};
/** @description Validation Error */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["HTTPValidationError"];
};
};
};
};
my_stats_api_users_me_stats_get: {
parameters: {
query?: never;