diff --git a/src/features/auth/index.ts b/src/features/auth/index.ts index 40118e9..eae9d71 100644 --- a/src/features/auth/index.ts +++ b/src/features/auth/index.ts @@ -1,2 +1,3 @@ export * from "./lib"; export * from "./ui"; +export * from "./model"; diff --git a/src/features/auth/model/index.ts b/src/features/auth/model/index.ts new file mode 100644 index 0000000..2bc5cbf --- /dev/null +++ b/src/features/auth/model/index.ts @@ -0,0 +1,2 @@ +export * from "./types/service"; +export * from "./types/store"; diff --git a/src/features/auth/model/types/service.ts b/src/features/auth/model/types/service.ts new file mode 100644 index 0000000..2c735cb --- /dev/null +++ b/src/features/auth/model/types/service.ts @@ -0,0 +1,18 @@ +import type { User } from "entities/User"; + +export interface AuthResponse { + /** + * Access token for the authenticated user. + */ + accessToken: string; + /** + * User object associated with the access token. + */ + user: User; +} + +export type AuthStatus = + | "idle" + | "loading" + | "authenticated" + | "unauthenticated"; diff --git a/src/features/auth/model/types/store.ts b/src/features/auth/model/types/store.ts new file mode 100644 index 0000000..0186b1d --- /dev/null +++ b/src/features/auth/model/types/store.ts @@ -0,0 +1,7 @@ +import type { User } from "entities/User"; +import type { AuthStatus } from "./service"; + +export interface AuthStore { + user?: User; + status?: AuthStatus; +}