feat: improve profile navigation and responsive privacy UX

This commit is contained in:
2026-09-29 15:26:28 +03:30
parent 61698ccbd9
commit bbf924c22d
25 changed files with 1353 additions and 764 deletions

View File

@@ -55,7 +55,9 @@ export interface UserProfileSchema {
student_id?: string | null;
year_of_study?: number;
university?: string;
university_code?: string | null;
major?: string;
major_code?: string | null;
date_joined: string;
is_email_verified?: boolean;
@@ -71,6 +73,31 @@ export interface UserProfileSchema {
can_access_blog_admin?: boolean;
can_write_blog_posts?: boolean;
can_review_blog_posts?: boolean;
show_public_profile_details?: boolean;
}
export interface PublicProfileEventSchema {
title: string;
slug: string;
start_time: string;
image_url?: string | null;
participation: "confirmed" | "attended";
}
export interface PublicMemberProfileSchema {
username: string;
first_name: string;
last_name: string;
full_name: string;
profile_picture?: string | null;
bio: string;
details_visible: boolean;
mobile?: string | null;
student_id?: string | null;
year_of_study?: number | null;
university?: string | null;
major?: string | null;
events: PublicProfileEventSchema[];
}
export interface UserListSchema {
@@ -144,6 +171,7 @@ export interface UserRegistrationSchema {
}
export type UserUpdateSchema = {
username?: string;
email?: string | null;
first_name?: string | null;
last_name?: string | null;
@@ -152,8 +180,31 @@ export type UserUpdateSchema = {
major?: string | null;
university?: string | null;
student_id?: string | null;
show_public_profile_details?: boolean;
};
export interface UserPaymentSchema {
event: {
title: string;
slug: string;
image_url?: string | null;
};
base_amount: number;
discount_amount: number;
amount: number;
status: "initiated" | "pending" | "paid" | "failed" | "canceled";
created_at: string;
paid_at?: string | null;
}
export interface PaginatedResponseSchema<T> {
count: number;
page: number;
page_size: number;
total_pages: number;
results: T[];
}
export interface UserLoginSchema {
identifier: string;
@@ -715,7 +766,16 @@ export interface MyEventRegistrationSchema {
id: number;
created_at: string;
status: 'pending' | 'confirmed' | 'cancelled' | 'attended';
event: EventListItemSchema;
event: {
id: number;
title: string;
slug: string;
start_date: string;
end_date?: string | null;
location?: string | null;
price: number;
absolute_image_url?: string | null;
};
}
// Gallery Types