diff --git a/src/types/auth.ts b/src/types/auth.ts new file mode 100644 index 0000000..e2ebcbc --- /dev/null +++ b/src/types/auth.ts @@ -0,0 +1,53 @@ +export interface Permission { + id: number; + title: string; + description: string; + created_at: string; + updated_at: string; +} + +export interface Role { + id: number; + title: string; + description: string; + permissions: Permission[]; + created_at: string; + updated_at: string; +} + +export interface AdminUser { + id: number; + username: string; + first_name: string; + last_name: string; + status: "active" | "inactive"; + permissions: Permission[]; + roles: Role[]; + created_at: string; + updated_at: string; +} + +export interface Tokens { + access_token: string; + refresh_token: string; +} + +export interface LoginResponse { + admin_user: AdminUser; + permissions: Permission[]; + tokens: Tokens; +} + +export interface LoginRequest { + username: string; + password: string; +} + +export interface AuthState { + isAuthenticated: boolean; + user: AdminUser | null; + permissions: Permission[]; + allPermissions: Permission[]; + token: string | null; + refreshToken: string | null; +} diff --git a/src/types/index.ts b/src/types/index.ts index c24cee4..a1f1be1 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -1,3 +1,5 @@ +export * from "./auth"; + export interface User { id: string; name: string;