@fabrix/spool-cart
Version:
Spool - eCommerce Spool for Fabrix
186 lines (185 loc) • 5.28 kB
TypeScript
import { FabrixModel as Model } from '@fabrix/fabrix/dist/common';
import { SequelizeResolver } from '@fabrix/spool-sequelize';
export declare class CustomerResolver extends SequelizeResolver {
findByIdDefault(id: any, options?: {}): any;
findByTokenDefault(token: any, options?: {}): any;
findAndCountDefault(options?: {}): any;
resolveByInstance(cart: any, options?: {
[key: string]: any;
}): Promise<any>;
resolveById(cart: any, options?: {
[key: string]: any;
}): any;
resolveByToken(cart: any, options?: {
[key: string]: any;
}): any;
resolveByEmail(cart: any, options?: {
[key: string]: any;
}): any;
resolveByNumber(cart: any, options?: {
[key: string]: any;
}): any;
resolveByString(cart: any, options?: {
[key: string]: any;
}): any;
resolve(customer: any, options?: {
[key: string]: any;
}): any;
}
export declare class Customer extends Model {
static readonly resolver: typeof CustomerResolver;
static config(app: any, Sequelize: any): {
options: {
underscored: boolean;
enums: {
CUSTOMER_STATE: {
DISABLED: string;
INVITED: string;
ENABLED: string;
DECLINED: string;
};
};
scopes: {
live: {
where: {
live_mode: boolean;
};
};
};
hooks: {
beforeCreate: ((customer: any, options: any) => void)[];
beforeUpdate: ((customer: any, options: any) => void)[];
afterCreate: ((customer: any, options: any) => any)[];
afterUpdate: ((customer: any, options: any) => any)[];
};
getterMethods: {
full_name: () => string;
};
};
};
static schema(app: any, Sequelize: any): {
token: {
type: any;
unique: boolean;
};
accepts_marketing: {
type: any;
defaultValue: boolean;
};
first_name: {
type: any;
};
last_name: {
type: any;
};
company: {
type: any;
};
phone: {
type: any;
};
email: {
type: any;
validate: {
isEmail: boolean;
};
set: (val: any) => any;
};
note: {
type: any;
};
last_order_id: {
type: any;
};
last_order_name: {
type: any;
};
state: {
type: any;
values: string[];
defaultValue: string;
};
type: {
type: any;
defaultValue: string;
};
tax_exempt: {
type: any;
defaultValue: boolean;
};
total_spent: {
type: any;
defaultValue: number;
};
avg_spent: {
type: any;
defaultValue: number;
};
currency: {
type: any;
defaultValue: any;
};
total_orders: {
type: any;
defaultValue: number;
};
account_balance: {
type: any;
defaultValue: number;
};
verified_email: {
type: any;
defaultValue: boolean;
};
default_address_id: {
type: any;
};
shipping_address_id: {
type: any;
};
billing_address_id: {
type: any;
};
ip: {
type: any;
};
create_ip: {
type: any;
};
update_ip: {
type: any;
};
live_mode: {
type: any;
defaultValue: any;
};
};
static associate(models: any): void;
}
export interface Customer {
getProductHistory(product: any, options: any): any;
hasPurchaseHistory(productId: any, options: any): any;
isSubscribed(productId: any, options: any): any;
getSalutation(options: any): any;
getDefaultSource(options: any): any;
setLastOrder(order: any): any;
setTotalSpent(orderTotalDue: any): any;
setTotalOrders(): any;
setAvgSpent(): any;
setAccountBalance(newBalance: any): any;
logAccountBalance(type: any, price: any, currency: any, accountId: any, orderId: any, options: any): any;
notifyUsers(preNotification: any, options: any): any;
resolveCollections(options: any): any;
resolveDiscounts(options: any): any;
resolveMetadata(options: any): any;
resolveUsers(options: any): any;
resolveDefaultAddress(options: any): any;
resolveShippingAddress(options: any): any;
resolveBillingAddress(options: any): any;
resolvePaymentDetailsToSources(options: any): any;
sendRetargetEmail(options: any): any;
updateDefaultAddress(address: any, options: any): any;
updateShippingAddress(address: any, options: any): any;
updateBillingAddress(address: any, options: any): any;
toJSON(): any;
}