/**
 * Информация о пользователе. Необходимо указать как минимум контактные данные: для Чеков от ЮKassa — электронную почту (`customer.email`), в остальных случаях — электронную почту (`customer.email`) или номер телефона (`customer.phone`).
 */
interface GeneralCustomer {
    /**
     * Для юрлица — название организации, для ИП и физического лица — ФИО.
     * Если у физлица отсутствует ИНН, в этом же параметре передаются паспортные данные. Не более 256 символов.
     * Можно передавать, если используете Чеки от ЮKassa или онлайн-кассу Orange Data, Атол Онлайн. */
    full_name?: string;
    /**
     * ИНН пользователя (10 или 12 цифр).
     * Если у физического лица отсутствует ИНН, необходимо передать паспортные данные в параметре `full_name`.
     * Можно передавать, если используете Чеки от ЮKassa или онлайн-кассу Orange Data, Атол Онлайн.
     */
    inn?: string;
    /**
     * Электронная почта пользователя для отправки чека.
     * Обязательный параметр, если используете Чеки от ЮKassa или если используете другое решение (стороннюю онлайн-кассу, чеки самозанятых) и не передаете `phone`.
     */
    email?: string;
    /**
     * Телефон пользователя для отправки чека. Указывается в формате [ITU-T E.164](https://ru.wikipedia.org/wiki/E.164), например `79000000000`. Обязательный параметр, если не передан `email`.
     */
    phone?: string;
}

type CustomerWithPhone = GeneralCustomer & {
    phone: string;
};
type CustomerWithoutPhone = GeneralCustomer & {
    email: string;
};

/**
 * Информация о пользователе. Необходимо указать как минимум контактные данные: для Чеков от ЮKassa — электронную почту (`customer.email`), в остальных случаях — электронную почту (`customer.email`) или номер телефона (`customer.phone`).
 */
export type Customer = CustomerWithPhone | CustomerWithoutPhone;
