sistemato omitempty json
This commit is contained in:
parent
3b5c39ffc0
commit
0a7cc993d4
|
|
@ -8,7 +8,7 @@ import (
|
|||
)
|
||||
|
||||
type User struct {
|
||||
ID int `json:"id" gorm:"primaryKey"`
|
||||
ID int `gorm:"primaryKey"`
|
||||
Email string `json:"email" gorm:"uniqueIndex;size:255"`
|
||||
Name string `json:"name" gorm:"size:255"`
|
||||
Password string `json:"-" gorm:"size:255"`
|
||||
|
|
@ -20,9 +20,9 @@ type User struct {
|
|||
Details *UserDetails `json:"details" gorm:"constraint:OnUpdate:CASCADE,OnDelete:SET NULL;"`
|
||||
Preferences *UserPreferences `json:"preferences" gorm:"constraint:OnUpdate:CASCADE,OnDelete:SET NULL;"`
|
||||
Avatar *string `json:"avatar" gorm:"size:512"`
|
||||
CreatedAt *time.Time `json:"createdAt" ts:"type=Nullable<Date>"`
|
||||
UpdatedAt *time.Time `json:"updatedAt" ts:"type=Nullable<Date>"`
|
||||
DeletedAt *gorm.DeletedAt `json:"-" gorm:"index" ts:"type=Nullable<Date>"`
|
||||
CreatedAt *time.Time `json:"createdAt,omitempty" ts:"type=Date"`
|
||||
UpdatedAt *time.Time `json:"updatedAt,omitempty" ts:"type=Date"`
|
||||
DeletedAt *gorm.DeletedAt `json:"-" gorm:"index" `
|
||||
}
|
||||
|
||||
// UserTypes is stored as JSON array (e.g. ["internal","external"]).
|
||||
|
|
@ -41,8 +41,8 @@ type UserProfile struct {
|
|||
Details *UserDetails `json:"details"`
|
||||
Preferences *UserPreferences `json:"preferences"`
|
||||
Avatar *string `json:"avatar"`
|
||||
CreatedAt *time.Time `json:"createdAt" ts:"type=Nullable<Date>"`
|
||||
UpdatedAt *time.Time `json:"updatedAt" ts:"type=Nullable<Date>"`
|
||||
CreatedAt *time.Time `json:"createdAt,omitempty" ts:"type=Date"`
|
||||
UpdatedAt *time.Time `json:"updatedAt,omitempty" ts:"type=Date"`
|
||||
}
|
||||
|
||||
// ToUserProfile maps a User to a full response without exposing the password hash.
|
||||
|
|
@ -80,8 +80,8 @@ type UserPreferences struct {
|
|||
UseQuadcodeLogin bool `json:"useQuadcodeLogin"`
|
||||
SendNoticesMail bool `json:"sendNoticesMail"`
|
||||
Language string `json:"language"`
|
||||
CreatedAt *time.Time `json:"createdAt" ts:"type=Nullable<Date>"`
|
||||
UpdatedAt *time.Time `json:"updatedAt" ts:"type=Nullable<Date>"`
|
||||
CreatedAt *time.Time `json:"createdAt,omitempty" ts:"type=Date"`
|
||||
UpdatedAt *time.Time `json:"updatedAt,omitempty" ts:"type=Date"`
|
||||
}
|
||||
|
||||
// UserDetails holds optional profile data.
|
||||
|
|
@ -97,8 +97,8 @@ type UserDetails struct {
|
|||
ZipCode string `json:"zipCode"`
|
||||
Country string `json:"country"`
|
||||
Phone string `json:"phone"`
|
||||
CreatedAt *time.Time `json:"createdAt" ts:"type=Nullable<Date>"`
|
||||
UpdatedAt *time.Time `json:"updatedAt" ts:"type=Nullable<Date>"`
|
||||
CreatedAt *time.Time `json:"createdAt,omitempty" ts:"type=Date"`
|
||||
UpdatedAt *time.Time `json:"updatedAt,omitempty" ts:"type=Date"`
|
||||
}
|
||||
|
||||
// UserDetails holds optional profile data.
|
||||
|
|
@ -114,8 +114,8 @@ type Session struct {
|
|||
ExpiresAt time.Time `json:"expiresAt" ts:"type=Nullable<Date>" gorm:"index"`
|
||||
IPAddress string `json:"ipAddress" gorm:"size:64"`
|
||||
UserAgent string `json:"userAgent" gorm:"size:512"`
|
||||
CreatedAt time.Time `json:"createdAt" ts:"type=Nullable<Date>"`
|
||||
UpdatedAt *time.Time `json:"updatedAt" ts:"type=Nullable<Date>"`
|
||||
CreatedAt time.Time `json:"createdAt,omitempty" ts:"type=Date"`
|
||||
UpdatedAt *time.Time `json:"updatedAt,omitempty" ts:"type=Date"`
|
||||
DeletedAt *gorm.DeletedAt `json:"-" gorm:"index" `
|
||||
}
|
||||
|
||||
|
|
@ -123,10 +123,10 @@ type PasswordResetToken struct {
|
|||
ID int `json:"id" gorm:"primaryKey"`
|
||||
UserID int `json:"userId" gorm:"index"`
|
||||
TokenHash string `json:"-" gorm:"size:64;uniqueIndex"`
|
||||
ExpiresAt time.Time `json:"expiresAt" ts:"type=Nullable<Date>" gorm:"index"`
|
||||
UsedAt *time.Time `json:"usedAt" ts:"type=Nullable<Date>"`
|
||||
CreatedAt *time.Time `json:"createdAt" ts:"type=Nullable<Date>"`
|
||||
UpdatedAt *time.Time `json:"updatedAt" ts:"type=Nullable<Date>"`
|
||||
ExpiresAt time.Time `json:"expiresAt,omitempty" ts:"type=Date" gorm:"index"`
|
||||
UsedAt *time.Time `json:"usedAt,omitempty" ts:"type=Date"`
|
||||
CreatedAt *time.Time `json:"createdAt" ts:"type=Date"`
|
||||
UpdatedAt *time.Time `json:"updatedAt,omitempty" ts:"type=Date"`
|
||||
DeletedAt *gorm.DeletedAt `json:"-" gorm:"index"`
|
||||
}
|
||||
|
||||
|
|
@ -170,9 +170,9 @@ type UpdateUserRequest struct {
|
|||
Permission auth.Permission `json:"permission"`
|
||||
Status UserStatus `json:"status"`
|
||||
Types UserTypes `json:"types"`
|
||||
Avatar *string `json:"avatar"`
|
||||
Details *UserDetails `json:"details"`
|
||||
Preferences *UserPreferences `json:"preferences"`
|
||||
Avatar *string `json:"avatar,omitempty"`
|
||||
Details *UserDetails `json:"details,omitempty"`
|
||||
Preferences *UserPreferences `json:"preferences,omitempty"`
|
||||
}
|
||||
|
||||
// UserCreateRequest captures the minimal payload to create a user.
|
||||
|
|
@ -184,7 +184,7 @@ type UserCreateRequest struct {
|
|||
Permission auth.Permission `json:"permission"`
|
||||
Status UserStatus `json:"status"`
|
||||
Types UserTypes `json:"types"`
|
||||
Avatar *string `json:"avatar"`
|
||||
Details *UserDetails `json:"details" `
|
||||
Preferences *UserPreferences `json:"preferences" `
|
||||
Avatar *string `json:"avatar,omitempty"`
|
||||
Details *UserDetails `json:"details,omitempty"`
|
||||
Preferences *UserPreferences `json:"preferences,omitempty"`
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,11 +26,6 @@ export const listUsers = async (
|
|||
};
|
||||
};
|
||||
|
||||
export interface ListUsersRequest {
|
||||
page: number;
|
||||
pageSize: number;
|
||||
}
|
||||
|
||||
export interface ListUsersResponse {
|
||||
items: users.User[];
|
||||
page: number;
|
||||
|
|
@ -41,3 +36,8 @@ export interface BlockUserRequest {
|
|||
uuid: string;
|
||||
action: string;
|
||||
}
|
||||
|
||||
export interface ListUsersRequest {
|
||||
page: number;
|
||||
pageSize: number;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
//
|
||||
// This file was generated by github.com/millevolte/ts-rpc
|
||||
//
|
||||
// May 04, 2026 16:09:10 UTC
|
||||
// May 05, 2026 14:14:16 UTC
|
||||
//
|
||||
|
||||
export interface ApiRestResponse {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { api } from "./api";
|
||||
import type { Record, Nullable } from "./apiTypes.ts";
|
||||
import type { Nullable, Record } from "./apiTypes.ts";
|
||||
|
||||
// Typescript: TSEndpoint= path=/api/roles; name=getRoles; method=GET; response=auth.AllRoles
|
||||
|
||||
|
|
@ -13,13 +13,13 @@ export const getRoles = async (): Promise<{
|
|||
error: Nullable<string>;
|
||||
};
|
||||
};
|
||||
export type EnumPermission =
|
||||
(typeof EnumEnumPermission)[keyof typeof EnumEnumPermission];
|
||||
|
||||
export type Permission = string;
|
||||
|
||||
export type AllRoles = Record<string, string>;
|
||||
|
||||
export type EnumPermission =
|
||||
(typeof EnumEnumPermission)[keyof typeof EnumEnumPermission];
|
||||
|
||||
export const EnumEnumPermission = {
|
||||
RoleSuperAdmin: "superadmin",
|
||||
RoleAdmin: "admin",
|
||||
|
|
|
|||
|
|
@ -1,68 +1,8 @@
|
|||
import { api } from "./api";
|
||||
import type { Nullable } from "./apiTypes.ts";
|
||||
import type * as auth from "./auth.ts";
|
||||
import type * as responses from "./responses.ts";
|
||||
import type * as tokens from "./tokens.ts";
|
||||
import type * as auth from "./auth.ts";
|
||||
|
||||
// Typescript: TSEndpoint= path=/api/users; name=createUser; method=POST; request=users.UserCreateRequest; response=users.User
|
||||
|
||||
// /Users/fabio/CODE/omnimed/go-quasar-partial-ssr/backend/internal/user/routes.go Line: 31
|
||||
export const createUser = async (
|
||||
data: UserCreateRequest,
|
||||
): Promise<{ data: User; error: Nullable<string> }> => {
|
||||
return (await api.POST("/api/users", data)) as {
|
||||
data: User;
|
||||
error: Nullable<string>;
|
||||
};
|
||||
};
|
||||
|
||||
// Typescript: TSEndpoint= path=/api/auth/password/update; name=updatePassword; method=PUT; request=users.UpdatePasswordRequest; response=responses.SimpleResponse
|
||||
|
||||
// /Users/fabio/CODE/omnimed/go-quasar-partial-ssr/backend/internal/user/routes.go Line: 61
|
||||
export const updatePassword = async (
|
||||
data: UpdatePasswordRequest,
|
||||
): Promise<{ data: responses.SimpleResponse; error: Nullable<string> }> => {
|
||||
return (await api.PUT("/api/auth/password/update", data)) as {
|
||||
data: responses.SimpleResponse;
|
||||
error: Nullable<string>;
|
||||
};
|
||||
};
|
||||
|
||||
// Typescript: TSEndpoint= path=/api/users/:uuid; name=getUser; method=GET; response=users.User
|
||||
|
||||
// /Users/fabio/CODE/omnimed/go-quasar-partial-ssr/backend/internal/user/routes.go Line: 28
|
||||
export const getUser = async (
|
||||
uuid: string,
|
||||
): Promise<{ data: User; error: Nullable<string> }> => {
|
||||
return (await api.GET(`/api/users/${uuid}`)) as {
|
||||
data: User;
|
||||
error: Nullable<string>;
|
||||
};
|
||||
};
|
||||
|
||||
// Typescript: TSEndpoint= path=/api/users/:uuid; name=deleteUser; method=DELETE; response=responses.SimpleResponse
|
||||
|
||||
// /Users/fabio/CODE/omnimed/go-quasar-partial-ssr/backend/internal/user/routes.go Line: 37
|
||||
export const deleteUser = async (
|
||||
uuid: string,
|
||||
): Promise<{ data: responses.SimpleResponse; error: Nullable<string> }> => {
|
||||
return (await api.DELETE(`/api/users/${uuid}`)) as {
|
||||
data: responses.SimpleResponse;
|
||||
error: Nullable<string>;
|
||||
};
|
||||
};
|
||||
|
||||
// Typescript: TSEndpoint= path=/api/auth/login; name=login; method=POST; request=users.LoginRequest; response=tokens.TokenPair
|
||||
|
||||
// /Users/fabio/CODE/omnimed/go-quasar-partial-ssr/backend/internal/user/routes.go Line: 43
|
||||
export const login = async (
|
||||
data: LoginRequest,
|
||||
): Promise<{ data: tokens.TokenPair; error: Nullable<string> }> => {
|
||||
return (await api.POST("/api/auth/login", data)) as {
|
||||
data: tokens.TokenPair;
|
||||
error: Nullable<string>;
|
||||
};
|
||||
};
|
||||
|
||||
// Typescript: TSEndpoint= path=/api/auth/password/reset; name=resetPassword; method=POST; request=users.ResetPasswordRequest; response=responses.SimpleResponse
|
||||
|
||||
|
|
@ -76,30 +16,6 @@ export const resetPassword = async (
|
|||
};
|
||||
};
|
||||
|
||||
// Typescript: TSEndpoint= path=/api/users/update; name=updateUser; method=PUT; request=users.UpdateUserRequest; response=users.User
|
||||
|
||||
// /Users/fabio/CODE/omnimed/go-quasar-partial-ssr/backend/internal/user/routes.go Line: 34
|
||||
export const updateUser = async (
|
||||
data: UpdateUserRequest,
|
||||
): Promise<{ data: User; error: Nullable<string> }> => {
|
||||
return (await api.PUT("/api/users/update", data)) as {
|
||||
data: User;
|
||||
error: Nullable<string>;
|
||||
};
|
||||
};
|
||||
|
||||
// Typescript: TSEndpoint= path=/api/auth/register; name=register; method=POST; request=users.UserCreateRequest; response=users.User
|
||||
|
||||
// /Users/fabio/CODE/omnimed/go-quasar-partial-ssr/backend/internal/user/routes.go Line: 49
|
||||
export const register = async (
|
||||
data: UserCreateRequest,
|
||||
): Promise<{ data: User; error: Nullable<string> }> => {
|
||||
return (await api.POST("/api/auth/register", data)) as {
|
||||
data: User;
|
||||
error: Nullable<string>;
|
||||
};
|
||||
};
|
||||
|
||||
// Typescript: TSEndpoint= path=/api/auth/password/valid; name=validToken; method=POST; request=string; response=responses.SimpleResponse
|
||||
|
||||
// /Users/fabio/CODE/omnimed/go-quasar-partial-ssr/backend/internal/user/routes.go Line: 58
|
||||
|
|
@ -125,18 +41,6 @@ export const me = async (): Promise<{
|
|||
};
|
||||
};
|
||||
|
||||
// Typescript: TSEndpoint= path=/api/auth/refresh; name=refresh; method=POST; request=users.RefreshRequest; response=tokens.TokenPair
|
||||
|
||||
// /Users/fabio/CODE/omnimed/go-quasar-partial-ssr/backend/internal/user/routes.go Line: 46
|
||||
export const refresh = async (
|
||||
data: RefreshRequest,
|
||||
): Promise<{ data: tokens.TokenPair; error: Nullable<string> }> => {
|
||||
return (await api.POST("/api/auth/refresh", data)) as {
|
||||
data: tokens.TokenPair;
|
||||
error: Nullable<string>;
|
||||
};
|
||||
};
|
||||
|
||||
// Typescript: TSEndpoint= path=/api/auth/password/forgot; name=forgotPassword; method=POST; request=users.ForgotPasswordRequest; response=responses.SimpleResponse
|
||||
|
||||
// /Users/fabio/CODE/omnimed/go-quasar-partial-ssr/backend/internal/user/routes.go Line: 52
|
||||
|
|
@ -149,27 +53,101 @@ export const forgotPassword = async (
|
|||
};
|
||||
};
|
||||
|
||||
export interface ResetPasswordRequest {
|
||||
token: string;
|
||||
password: string;
|
||||
}
|
||||
// Typescript: TSEndpoint= path=/api/auth/password/update; name=updatePassword; method=PUT; request=users.UpdatePasswordRequest; response=responses.SimpleResponse
|
||||
|
||||
export interface UpdateUserRequest {
|
||||
uuid: string;
|
||||
name: string;
|
||||
email: string;
|
||||
password: string;
|
||||
permission: auth.Permission;
|
||||
status: UserStatus;
|
||||
types: UserTypes;
|
||||
avatar: Nullable<string>;
|
||||
details: Nullable<UserDetails>;
|
||||
preferences: Nullable<UserPreferences>;
|
||||
}
|
||||
// /Users/fabio/CODE/omnimed/go-quasar-partial-ssr/backend/internal/user/routes.go Line: 61
|
||||
export const updatePassword = async (
|
||||
data: UpdatePasswordRequest,
|
||||
): Promise<{ data: responses.SimpleResponse; error: Nullable<string> }> => {
|
||||
return (await api.PUT("/api/auth/password/update", data)) as {
|
||||
data: responses.SimpleResponse;
|
||||
error: Nullable<string>;
|
||||
};
|
||||
};
|
||||
|
||||
export interface UpdatePasswordRequest {
|
||||
password: string;
|
||||
}
|
||||
// Typescript: TSEndpoint= path=/api/users/:uuid; name=getUser; method=GET; response=users.User
|
||||
|
||||
// /Users/fabio/CODE/omnimed/go-quasar-partial-ssr/backend/internal/user/routes.go Line: 28
|
||||
export const getUser = async (
|
||||
uuid: string,
|
||||
): Promise<{ data: User; error: Nullable<string> }> => {
|
||||
return (await api.GET(`/api/users/${uuid}`)) as {
|
||||
data: User;
|
||||
error: Nullable<string>;
|
||||
};
|
||||
};
|
||||
|
||||
// Typescript: TSEndpoint= path=/api/users/update; name=updateUser; method=PUT; request=users.UpdateUserRequest; response=users.User
|
||||
|
||||
// /Users/fabio/CODE/omnimed/go-quasar-partial-ssr/backend/internal/user/routes.go Line: 34
|
||||
export const updateUser = async (
|
||||
data: UpdateUserRequest,
|
||||
): Promise<{ data: User; error: Nullable<string> }> => {
|
||||
return (await api.PUT("/api/users/update", data)) as {
|
||||
data: User;
|
||||
error: Nullable<string>;
|
||||
};
|
||||
};
|
||||
|
||||
// Typescript: TSEndpoint= path=/api/users/:uuid; name=deleteUser; method=DELETE; response=responses.SimpleResponse
|
||||
|
||||
// /Users/fabio/CODE/omnimed/go-quasar-partial-ssr/backend/internal/user/routes.go Line: 37
|
||||
export const deleteUser = async (
|
||||
uuid: string,
|
||||
): Promise<{ data: responses.SimpleResponse; error: Nullable<string> }> => {
|
||||
return (await api.DELETE(`/api/users/${uuid}`)) as {
|
||||
data: responses.SimpleResponse;
|
||||
error: Nullable<string>;
|
||||
};
|
||||
};
|
||||
|
||||
// Typescript: TSEndpoint= path=/api/auth/login; name=login; method=POST; request=users.LoginRequest; response=tokens.TokenPair
|
||||
|
||||
// /Users/fabio/CODE/omnimed/go-quasar-partial-ssr/backend/internal/user/routes.go Line: 43
|
||||
export const login = async (
|
||||
data: LoginRequest,
|
||||
): Promise<{ data: tokens.TokenPair; error: Nullable<string> }> => {
|
||||
return (await api.POST("/api/auth/login", data)) as {
|
||||
data: tokens.TokenPair;
|
||||
error: Nullable<string>;
|
||||
};
|
||||
};
|
||||
|
||||
// Typescript: TSEndpoint= path=/api/auth/register; name=register; method=POST; request=users.UserCreateRequest; response=users.User
|
||||
|
||||
// /Users/fabio/CODE/omnimed/go-quasar-partial-ssr/backend/internal/user/routes.go Line: 49
|
||||
export const register = async (
|
||||
data: UserCreateRequest,
|
||||
): Promise<{ data: User; error: Nullable<string> }> => {
|
||||
return (await api.POST("/api/auth/register", data)) as {
|
||||
data: User;
|
||||
error: Nullable<string>;
|
||||
};
|
||||
};
|
||||
|
||||
// Typescript: TSEndpoint= path=/api/users; name=createUser; method=POST; request=users.UserCreateRequest; response=users.User
|
||||
|
||||
// /Users/fabio/CODE/omnimed/go-quasar-partial-ssr/backend/internal/user/routes.go Line: 31
|
||||
export const createUser = async (
|
||||
data: UserCreateRequest,
|
||||
): Promise<{ data: User; error: Nullable<string> }> => {
|
||||
return (await api.POST("/api/users", data)) as {
|
||||
data: User;
|
||||
error: Nullable<string>;
|
||||
};
|
||||
};
|
||||
|
||||
// Typescript: TSEndpoint= path=/api/auth/refresh; name=refresh; method=POST; request=users.RefreshRequest; response=tokens.TokenPair
|
||||
|
||||
// /Users/fabio/CODE/omnimed/go-quasar-partial-ssr/backend/internal/user/routes.go Line: 46
|
||||
export const refresh = async (
|
||||
data: RefreshRequest,
|
||||
): Promise<{ data: tokens.TokenPair; error: Nullable<string> }> => {
|
||||
return (await api.POST("/api/auth/refresh", data)) as {
|
||||
data: tokens.TokenPair;
|
||||
error: Nullable<string>;
|
||||
};
|
||||
};
|
||||
|
||||
export interface UserCreateRequest {
|
||||
name: string;
|
||||
|
|
@ -183,37 +161,6 @@ export interface UserCreateRequest {
|
|||
preferences: Nullable<UserPreferences>;
|
||||
}
|
||||
|
||||
export interface User {
|
||||
id: number;
|
||||
email: string;
|
||||
name: string;
|
||||
permission: auth.Permission;
|
||||
types: UserTypes;
|
||||
status: UserStatus;
|
||||
activatedAt: Nullable<Date>;
|
||||
uuid: string;
|
||||
details: Nullable<UserDetails>;
|
||||
preferences: Nullable<UserPreferences>;
|
||||
avatar: Nullable<string>;
|
||||
createdAt: Nullable<Date>;
|
||||
updatedAt: Nullable<Date>;
|
||||
}
|
||||
|
||||
export interface UserDetails {
|
||||
id: number;
|
||||
userId: number;
|
||||
title: string;
|
||||
firstName: string;
|
||||
lastName: string;
|
||||
address: string;
|
||||
city: string;
|
||||
zipCode: string;
|
||||
country: string;
|
||||
phone: string;
|
||||
createdAt: Nullable<Date>;
|
||||
updatedAt: Nullable<Date>;
|
||||
}
|
||||
|
||||
export interface UserPreferences {
|
||||
id: number;
|
||||
userId: number;
|
||||
|
|
@ -229,8 +176,32 @@ export interface UserPreferences {
|
|||
updatedAt: Nullable<Date>;
|
||||
}
|
||||
|
||||
export interface ForgotPasswordRequest {
|
||||
email: string;
|
||||
export interface RefreshRequest {
|
||||
refresh_token: string;
|
||||
}
|
||||
|
||||
export interface ResetPasswordRequest {
|
||||
token: string;
|
||||
password: string;
|
||||
}
|
||||
|
||||
export interface UpdatePasswordRequest {
|
||||
password: string;
|
||||
}
|
||||
|
||||
export interface UserDetails {
|
||||
id: number;
|
||||
userId: number;
|
||||
title: string;
|
||||
firstName: string;
|
||||
lastName: string;
|
||||
address: string;
|
||||
city: string;
|
||||
zipCode: string;
|
||||
country: string;
|
||||
phone: string;
|
||||
createdAt: Nullable<Date>;
|
||||
updatedAt: Nullable<Date>;
|
||||
}
|
||||
|
||||
export interface LoginRequest {
|
||||
|
|
@ -238,8 +209,36 @@ export interface LoginRequest {
|
|||
password: string;
|
||||
}
|
||||
|
||||
export interface RefreshRequest {
|
||||
refresh_token: string;
|
||||
export interface UpdateUserRequest {
|
||||
uuid: string;
|
||||
name: string;
|
||||
email: string;
|
||||
password: string;
|
||||
permission: auth.Permission;
|
||||
status: UserStatus;
|
||||
types: UserTypes;
|
||||
avatar: Nullable<string>;
|
||||
details: Nullable<UserDetails>;
|
||||
preferences: Nullable<UserPreferences>;
|
||||
}
|
||||
|
||||
export interface User {
|
||||
email: string;
|
||||
name: string;
|
||||
permission: auth.Permission;
|
||||
types: UserTypes;
|
||||
status: UserStatus;
|
||||
activatedAt: Nullable<Date>;
|
||||
uuid: string;
|
||||
details: Nullable<UserDetails>;
|
||||
preferences: Nullable<UserPreferences>;
|
||||
avatar: Nullable<string>;
|
||||
createdAt?: Date;
|
||||
updatedAt?: Date;
|
||||
}
|
||||
|
||||
export interface ForgotPasswordRequest {
|
||||
email: string;
|
||||
}
|
||||
|
||||
export type UserStatus = string;
|
||||
|
|
|
|||
Loading…
Reference in New Issue