import { coloredToast } from '@/lib/toast';

interface User {
    id: string;
    name: string;
    email: string;
    password: string;
    role: string;
    phone: string;
    birthday: string;
    birthday_notification: boolean;
    gender: string;
    is_google: string;
    is_woo: string;
    is_fb: string;
    shipping: {
        name: string;
        phone: string;
        address: string;
        kecamatan: string;
        kelurahan: string;
        kota: string;
        provinsi: string;
        kodepos: string;
    };
}

export const SaveUser = (userForm: User) => {
    const validationError = validateInput(userForm);

    if (validationError) {
        coloredToast('warning', validationError);
        return { status: false };
    }

    const data = {
        name: userForm.name,
        email: userForm.email,
        password: userForm.password,
        role: userForm.role,
        phone: userForm.phone,
        birthday: userForm.birthday,
        birthday_notification: userForm.birthday_notification,
        gender: userForm.gender,
        is_google: userForm.is_google,
        is_woo: userForm.is_woo,
        is_fb: userForm.is_fb,
        shipping: {
            name: userForm.shipping.name,
            phone: userForm.shipping.phone,
            address: userForm.shipping.address,
            kecamatan: userForm.shipping.kecamatan,
            kelurahan: userForm.shipping.kelurahan,
            kota: userForm.shipping.kota,
            provinsi: userForm.shipping.provinsi,
            kodepos: userForm.shipping.kodepos,
        },
    };

    return {
        status: true,
        data,
    };
};

const validateInput = (userForm: User): string | null => {
    if (!userForm.email) {
        return 'Email is required.';
    }
    if (!userForm.email.includes('@')) {
        return 'Invalid email format.';
    }
    if (!userForm.name) {
        return 'Name is required.';
    }
    if (!userForm.role) {
        return 'Role is required.';
    }

    return null;
};
