package requestmodel type UserCredentials struct { FirstName string `json:"first_name"` LastName string `json:"last_name"` MiddleName *string `json:"middle_name"` Email string `json:"email"` PhoneNumber string `json:"phone"` Password string `json:"password"` UserType int32 `json:"user_type"` Permissions map[string]string `json:"permissions"` } type RegisterResponse struct { UUID string `json:"uid"` } type ( LoginUserRequest struct { Email string `json:"email"` Password string `json:"password"` } LoginUserResponse struct { Uid string `json:"uid"` AccessToken string `json:"access_token"` RefreshToken string `json:"refresh_token"` UserType int32 `json:"user_type"` Permissions Permissions `json:"permissions"` EmailVerified bool `json:"email_confirmed"` } Permissions struct { Balance string `json:"balance"` Company string `json:"company"` Employees string `json:"employees"` Profile string `json:"profile"` Submissions string `json:"submissions"` Vacancies string `json:"vacancies"` } ) type LogoutUserRequest struct { RefreshToken string `json:"refresh_token"` } type ( RefreshTokenRequest struct { RefreshToken string `json:"refresh_token"` } RefreshTokenResponse struct { AccessToken string `json:"access_token"` RefreshToken string `json:"refresh_token"` } ) type ForgotPasswordRequest struct { Email string `json:"email"` } type ValidateOTPResponse struct { IsValid bool `json:"valid"` Token string `json:"token"` } type ResetPasswordRequest struct { Email string `json:"email"` Password string `json:"new_password"` Token string `json:"token"` }