Files
shadow-gunbuilder-ai-proto/types/user.ts
T

34 lines
789 B
TypeScript

// /types/user.ts
// ---- Roles ----
export type UserRole = "USER" | "ADMIN";
// If you ever add more:
// export type UserRole = "USER" | "ADMIN" | "SUPERADMIN" | "SUSPENDED";
// ---- Core user shapes ----
export interface BaseUser {
id: string;
email: string;
displayName?: string | null;
role: UserRole;
createdAt: string; // ISO string from backend
updatedAt?: string | null; // optional if you expose it
lastLoginAt?: string | null;
}
// What the admin UI works with
export type AdminUser = BaseUser;
// What your auth context might use on the client
export type AuthUser = {
id: string;
email: string;
displayName?: string | null;
role: UserRole;
} | null;
// ---- Payloads / DTOs ----
export interface UpdateUserRolePayload {
role: UserRole;
}