Files
payloadcms/test/plugin-ecommerce/payload-types.ts
Paul ef4874b9a0 feat: ecommerce plugin and template (#8297)
This PR adds an ecommerce plugin package with both a Payload plugin and
React UI utilities for the frontend. It also adds a new ecommerce
template and new ecommerce test suite.

It also makes a change to the `cpa` package to accept a `--version` flag
to install a specific version of Payload defaulting to the latest.
2025-09-29 20:05:16 -04:00

559 lines
13 KiB
TypeScript

/* tslint:disable */
/* eslint-disable */
/**
* This file was automatically generated by Payload.
* DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config,
* and re-run `payload generate:types` to regenerate this file.
*/
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "OrderStatus".
*/
export type OrderStatus = ('processing' | 'completed' | 'cancelled' | 'refunded') | null;
/**
* Supported timezones in IANA format.
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "supportedTimezones".
*/
export type SupportedTimezones =
| 'Pacific/Midway'
| 'Pacific/Niue'
| 'Pacific/Honolulu'
| 'Pacific/Rarotonga'
| 'America/Anchorage'
| 'Pacific/Gambier'
| 'America/Los_Angeles'
| 'America/Tijuana'
| 'America/Denver'
| 'America/Phoenix'
| 'America/Chicago'
| 'America/Guatemala'
| 'America/New_York'
| 'America/Bogota'
| 'America/Caracas'
| 'America/Santiago'
| 'America/Buenos_Aires'
| 'America/Sao_Paulo'
| 'Atlantic/South_Georgia'
| 'Atlantic/Azores'
| 'Atlantic/Cape_Verde'
| 'Europe/London'
| 'Europe/Berlin'
| 'Africa/Lagos'
| 'Europe/Athens'
| 'Africa/Cairo'
| 'Europe/Moscow'
| 'Asia/Riyadh'
| 'Asia/Dubai'
| 'Asia/Baku'
| 'Asia/Karachi'
| 'Asia/Tashkent'
| 'Asia/Calcutta'
| 'Asia/Dhaka'
| 'Asia/Almaty'
| 'Asia/Jakarta'
| 'Asia/Bangkok'
| 'Asia/Shanghai'
| 'Asia/Singapore'
| 'Asia/Tokyo'
| 'Asia/Seoul'
| 'Australia/Brisbane'
| 'Australia/Sydney'
| 'Pacific/Guam'
| 'Pacific/Noumea'
| 'Pacific/Auckland'
| 'Pacific/Fiji';
export interface Config {
auth: {
users: UserAuthOperations;
};
blocks: {};
collections: {
users: User;
media: Media;
variants: Variant;
variantTypes: VariantType;
variantOptions: VariantOption;
products: Product;
orders: Order;
transactions: Transaction;
'payload-locked-documents': PayloadLockedDocument;
'payload-preferences': PayloadPreference;
'payload-migrations': PayloadMigration;
};
collectionsJoins: {
variantTypes: {
options: 'variantOptions';
};
products: {
variants: 'variants';
};
};
collectionsSelect: {
users: UsersSelect<false> | UsersSelect<true>;
media: MediaSelect<false> | MediaSelect<true>;
variants: VariantsSelect<false> | VariantsSelect<true>;
variantTypes: VariantTypesSelect<false> | VariantTypesSelect<true>;
variantOptions: VariantOptionsSelect<false> | VariantOptionsSelect<true>;
products: ProductsSelect<false> | ProductsSelect<true>;
orders: OrdersSelect<false> | OrdersSelect<true>;
transactions: TransactionsSelect<false> | TransactionsSelect<true>;
'payload-locked-documents': PayloadLockedDocumentsSelect<false> | PayloadLockedDocumentsSelect<true>;
'payload-preferences': PayloadPreferencesSelect<false> | PayloadPreferencesSelect<true>;
'payload-migrations': PayloadMigrationsSelect<false> | PayloadMigrationsSelect<true>;
};
db: {
defaultIDType: string;
};
globals: {};
globalsSelect: {};
locale: null;
user: User & {
collection: 'users';
};
jobs: {
tasks: unknown;
workflows: unknown;
};
}
export interface UserAuthOperations {
forgotPassword: {
email: string;
password: string;
};
login: {
email: string;
password: string;
};
registerFirstUser: {
email: string;
password: string;
};
unlock: {
email: string;
password: string;
};
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "users".
*/
export interface User {
id: string;
updatedAt: string;
createdAt: string;
email: string;
resetPasswordToken?: string | null;
resetPasswordExpiration?: string | null;
salt?: string | null;
hash?: string | null;
loginAttempts?: number | null;
lockUntil?: string | null;
password?: string | null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "media".
*/
export interface Media {
id: string;
updatedAt: string;
createdAt: string;
url?: string | null;
thumbnailURL?: string | null;
filename?: string | null;
mimeType?: string | null;
filesize?: number | null;
width?: number | null;
height?: number | null;
focalX?: number | null;
focalY?: number | null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "variants".
*/
export interface Variant {
id: string;
/**
* Used for administrative purposes, not shown to customers. This is populated by default.
*/
title?: string | null;
/**
* this should not be editable, or at least, should be able to be pre-filled via default
*/
product: string | Product;
options: (string | VariantOption)[];
inventory: number;
priceInUSDEnabled?: boolean | null;
priceInUSD?: number | null;
priceInJPYEnabled?: boolean | null;
priceInJPY?: number | null;
priceInEUREnabled?: boolean | null;
priceInEUR?: number | null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "products".
*/
export interface Product {
id: string;
name?: string | null;
enableVariants?: boolean | null;
variantTypes?: (string | VariantType)[] | null;
variants?: {
docs?: (string | Variant)[];
hasNextPage?: boolean;
totalDocs?: number;
};
priceInUSDEnabled?: boolean | null;
priceInUSD?: number | null;
priceInJPYEnabled?: boolean | null;
priceInJPY?: number | null;
priceInEUREnabled?: boolean | null;
priceInEUR?: number | null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "variantTypes".
*/
export interface VariantType {
id: string;
label: string;
name: string;
options?: {
docs?: (string | VariantOption)[];
hasNextPage?: boolean;
totalDocs?: number;
};
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "variantOptions".
*/
export interface VariantOption {
id: string;
variantType: string | VariantType;
label: string;
/**
* should be defaulted or dynamic based on label
*/
value: string;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "orders".
*/
export interface Order {
id: string;
customer?: (string | null) | User;
customerEmail?: string | null;
transactions?: (string | Transaction)[] | null;
status?: OrderStatus;
amount?: number | null;
currency?: ('USD' | 'JPY' | 'EUR') | null;
cart?:
| {
product?: (string | null) | Product;
variant?: (string | null) | Variant;
quantity: number;
amount?: number | null;
currency?: ('USD' | 'JPY' | 'EUR') | null;
id?: string | null;
}[]
| null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "transactions".
*/
export interface Transaction {
id: string;
customer?: (string | null) | User;
customerEmail?: string | null;
order?: (string | null) | Order;
status: 'pending' | 'succeeded' | 'failed' | 'cancelled' | 'expired' | 'refunded';
paymentMethod?: 'stripe' | null;
stripe?: {
customerID?: string | null;
paymentIntentID?: string | null;
};
currency?: ('USD' | 'JPY' | 'EUR') | null;
amount?: number | null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-locked-documents".
*/
export interface PayloadLockedDocument {
id: string;
document?:
| ({
relationTo: 'users';
value: string | User;
} | null)
| ({
relationTo: 'media';
value: string | Media;
} | null)
| ({
relationTo: 'variants';
value: string | Variant;
} | null)
| ({
relationTo: 'variantTypes';
value: string | VariantType;
} | null)
| ({
relationTo: 'variantOptions';
value: string | VariantOption;
} | null)
| ({
relationTo: 'products';
value: string | Product;
} | null)
| ({
relationTo: 'orders';
value: string | Order;
} | null)
| ({
relationTo: 'transactions';
value: string | Transaction;
} | null);
globalSlug?: string | null;
user: {
relationTo: 'users';
value: string | User;
};
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-preferences".
*/
export interface PayloadPreference {
id: string;
user: {
relationTo: 'users';
value: string | User;
};
key?: string | null;
value?:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-migrations".
*/
export interface PayloadMigration {
id: string;
name?: string | null;
batch?: number | null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "users_select".
*/
export interface UsersSelect<T extends boolean = true> {
updatedAt?: T;
createdAt?: T;
email?: T;
resetPasswordToken?: T;
resetPasswordExpiration?: T;
salt?: T;
hash?: T;
loginAttempts?: T;
lockUntil?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "media_select".
*/
export interface MediaSelect<T extends boolean = true> {
updatedAt?: T;
createdAt?: T;
url?: T;
thumbnailURL?: T;
filename?: T;
mimeType?: T;
filesize?: T;
width?: T;
height?: T;
focalX?: T;
focalY?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "variants_select".
*/
export interface VariantsSelect<T extends boolean = true> {
title?: T;
product?: T;
options?: T;
inventory?: T;
priceInUSDEnabled?: T;
priceInUSD?: T;
priceInJPYEnabled?: T;
priceInJPY?: T;
priceInEUREnabled?: T;
priceInEUR?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "variantTypes_select".
*/
export interface VariantTypesSelect<T extends boolean = true> {
label?: T;
name?: T;
options?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "variantOptions_select".
*/
export interface VariantOptionsSelect<T extends boolean = true> {
variantType?: T;
label?: T;
value?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "products_select".
*/
export interface ProductsSelect<T extends boolean = true> {
name?: T;
enableVariants?: T;
variantTypes?: T;
variants?: T;
priceInUSDEnabled?: T;
priceInUSD?: T;
priceInJPYEnabled?: T;
priceInJPY?: T;
priceInEUREnabled?: T;
priceInEUR?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "orders_select".
*/
export interface OrdersSelect<T extends boolean = true> {
customer?: T;
customerEmail?: T;
transactions?: T;
status?: T;
amount?: T;
currency?: T;
cart?:
| T
| {
product?: T;
variant?: T;
quantity?: T;
amount?: T;
currency?: T;
id?: T;
};
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "transactions_select".
*/
export interface TransactionsSelect<T extends boolean = true> {
customer?: T;
customerEmail?: T;
order?: T;
status?: T;
paymentMethod?: T;
stripe?:
| T
| {
customerID?: T;
paymentIntentID?: T;
};
currency?: T;
amount?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-locked-documents_select".
*/
export interface PayloadLockedDocumentsSelect<T extends boolean = true> {
document?: T;
globalSlug?: T;
user?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-preferences_select".
*/
export interface PayloadPreferencesSelect<T extends boolean = true> {
user?: T;
key?: T;
value?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-migrations_select".
*/
export interface PayloadMigrationsSelect<T extends boolean = true> {
name?: T;
batch?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "auth".
*/
export interface Auth {
[k: string]: unknown;
}
declare module 'payload' {
// @ts-ignore
export interface GeneratedTypes extends Config {}
}