/**
 * Authentication Request/Response Types
 */

import { UserResponse } from './user.types';

export interface LoginRequest {
    email: string;
    password: string;
}

export interface RegisterRequest {
    username: string;
    email: string;
    password: string;
    first_name: string;
    last_name: string;
    prefix?: {
        th?: string;
        en?: string;
    };
    phone: string;
}

export interface LoginResponse {
    code: number;
    message: string;
    data: {
        token: string;
        refreshToken: string;
        user: UserResponse;
    };
}

export interface RegisterResponse {
    user: UserResponse;
    message: string;
}

export interface RefreshTokenRequest {
    refreshToken: string;
}

export interface RefreshTokenResponse {
    token: string;
    refreshToken: string;
}

export interface ResetRequest {
    email: string;

}

export interface ResetPasswordRequest {
    token: string;
    password: string;
}

export interface ChangePassword {
    oldPassword: string;
    newPassword: string;
}

export interface ResetPasswordResponse {
    code: number;
    message: string;
}

export interface ChangePasswordResponse {
    code: number;
    message: string;
}

export interface ResetRequestResponse {
    code: number;
    message: string;
}

