/**
 * User response type
 */
export interface UserResponse {
    id: number;
    username: string;
    email: string;
    email_verified_at: Date | null;
    updated_at: Date | null;
    created_at: Date | null;
    role: {
        code: string;
        name: {
            th: string;
            en: string;
        };
    };
    profile?: ProfileResponse;
}

export interface ProfileResponse {
    prefix?: {
        th?: string;
        en?: string;
    };
    first_name: string;
    last_name: string;
    phone: string | null;
    avatar_url: string | null;
    birth_date: Date | null;
}

export interface ProfileUpdate {
    prefix?: {
        th?: string;
        en?: string;
    };
    first_name?: string;
    last_name?: string;
    phone?: string | null;
    avatar_url?: string | null;
    birth_date?: Date | null;
};

export interface ProfileUpdateResponse {
    code: number;
    message: string;
    data: {
        id: number;
        prefix?: {
            th?: string;
            en?: string;
        };
        first_name: string;
        last_name: string;
        phone: string | null;
        avatar_url: string | null;
        birth_date: Date | null;
    };
};


export interface ChangePasswordRequest {
    old_password: string;
    new_password: string;
};


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

export interface updateAvatarRequest {
    token: string;
    avatar_url: string;
};

export interface updateAvatarResponse {
    code: number;
    message: string;
    data: {
        id: number;
        avatar_url: string;
    };
};

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

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