/* tslint:disable */
/* eslint-disable */
/**
 * 
 * @export
 * @interface APGSAttributeInfo
 */
export interface APGSAttributeInfo {
    /**
     * 
     * @type {string}
     * @memberof APGSAttributeInfo
     */
    id: string;
    /**
     * 
     * @type {string}
     * @memberof APGSAttributeInfo
     */
    value: string;
    /**
     * 
     * @type {{ [key: string]: string; }}
     * @memberof APGSAttributeInfo
     */
    info: { [key: string]: string; };
}
/**
 * 
 * @export
 * @interface Address
 */
export interface Address {
    /**
     * 
     * @type {string}
     * @memberof Address
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof Address
     */
    title: string;
    /**
     * 
     * @type {string}
     * @memberof Address
     */
    receiverName: string;
    /**
     * 
     * @type {string}
     * @memberof Address
     */
    phoneNumber: string;
    /**
     * 
     * @type {string}
     * @memberof Address
     */
    mainAddress: string;
    /**
     * 
     * @type {string}
     * @memberof Address
     */
    postalCode: string;
    /**
     * 
     * @type {string}
     * @memberof Address
     */
    entryReference?: string | null;
    /**
     * 
     * @type {string}
     * @memberof Address
     */
    details?: string | null;
    /**
     * 
     * @type {number}
     * @memberof Address
     */
    latitude?: number | null;
    /**
     * 
     * @type {number}
     * @memberof Address
     */
    longitude?: number | null;
    /**
     * 
     * @type {boolean}
     * @memberof Address
     */
    isDefault?: boolean;
    /**
     * 
     * @type {string}
     * @memberof Address
     */
    readonly createdAt?: string;
}
/**
 * 
 * @export
 * @interface AdminCollectionAddProducts
 */
export interface AdminCollectionAddProducts {
    /**
     * IDs of products to add (admin can add any product).
     * @type {Array<string>}
     * @memberof AdminCollectionAddProducts
     */
    productIds: Array<string>;
    /**
     * 
     * @type {Array<string>}
     * @memberof AdminCollectionAddProducts
     */
    readonly added?: Array<string>;
    /**
     * 
     * @type {Array<string>}
     * @memberof AdminCollectionAddProducts
     */
    readonly skipped?: Array<string>;
    /**
     * 
     * @type {number}
     * @memberof AdminCollectionAddProducts
     */
    readonly productCount?: number;
}
/**
 * 
 * @export
 * @interface AdminCollectionCreate
 */
export interface AdminCollectionCreate {
    /**
     * 
     * @type {string}
     * @memberof AdminCollectionCreate
     */
    title: string;
    /**
     * 
     * @type {string}
     * @memberof AdminCollectionCreate
     */
    description?: string | null;
    /**
     * 
     * @type {string}
     * @memberof AdminCollectionCreate
     */
    coverImageUrl?: string | null;
    /**
     * 
     * @type {boolean}
     * @memberof AdminCollectionCreate
     */
    isPublic?: boolean;
    /**
     * 
     * @type {string}
     * @memberof AdminCollectionCreate
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof AdminCollectionCreate
     */
    readonly creatorType?: string;
    /**
     * 
     * @type {string}
     * @memberof AdminCollectionCreate
     */
    readonly creatorId?: string;
    /**
     * 
     * @type {string}
     * @memberof AdminCollectionCreate
     */
    readonly creatorUsername?: string | null;
    /**
     * 
     * @type {string}
     * @memberof AdminCollectionCreate
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof AdminCollectionCreate
     */
    readonly updatedAt?: string;
}
/**
 * 
 * @export
 * @interface AdminCollectionCursorPage
 */
export interface AdminCollectionCursorPage {
    /**
     * 
     * @type {string}
     * @memberof AdminCollectionCursorPage
     */
    next: string | null;
    /**
     * 
     * @type {string}
     * @memberof AdminCollectionCursorPage
     */
    previous: string | null;
    /**
     * 
     * @type {Array<AdminCollectionListItem>}
     * @memberof AdminCollectionCursorPage
     */
    results: Array<AdminCollectionListItem>;
}
/**
 * 
 * @export
 * @interface AdminCollectionListItem
 */
export interface AdminCollectionListItem {
    /**
     * 
     * @type {string}
     * @memberof AdminCollectionListItem
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof AdminCollectionListItem
     */
    readonly title?: string;
    /**
     * 
     * @type {string}
     * @memberof AdminCollectionListItem
     */
    readonly description?: string | null;
    /**
     * 
     * @type {string}
     * @memberof AdminCollectionListItem
     */
    readonly coverImageUrl?: string | null;
    /**
     * 
     * @type {boolean}
     * @memberof AdminCollectionListItem
     */
    readonly isPublic?: boolean;
    /**
     * 
     * @type {string}
     * @memberof AdminCollectionListItem
     */
    readonly creatorType?: string;
    /**
     * 
     * @type {string}
     * @memberof AdminCollectionListItem
     */
    readonly creatorId?: string;
    /**
     * 
     * @type {string}
     * @memberof AdminCollectionListItem
     */
    readonly creatorUsername?: string | null;
    /**
     * 
     * @type {string}
     * @memberof AdminCollectionListItem
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof AdminCollectionListItem
     */
    readonly updatedAt?: string;
    /**
     * 
     * @type {number}
     * @memberof AdminCollectionListItem
     */
    readonly productCount?: number;
}
/**
 * 
 * @export
 * @interface AdminCollectionUpdate
 */
export interface AdminCollectionUpdate {
    /**
     * 
     * @type {string}
     * @memberof AdminCollectionUpdate
     */
    title?: string;
    /**
     * 
     * @type {string}
     * @memberof AdminCollectionUpdate
     */
    description?: string | null;
    /**
     * 
     * @type {string}
     * @memberof AdminCollectionUpdate
     */
    coverImageUrl?: string | null;
    /**
     * 
     * @type {boolean}
     * @memberof AdminCollectionUpdate
     */
    isPublic?: boolean;
    /**
     * 
     * @type {string}
     * @memberof AdminCollectionUpdate
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof AdminCollectionUpdate
     */
    readonly creatorType?: string;
    /**
     * 
     * @type {string}
     * @memberof AdminCollectionUpdate
     */
    readonly creatorId?: string;
    /**
     * 
     * @type {string}
     * @memberof AdminCollectionUpdate
     */
    readonly creatorUsername?: string | null;
    /**
     * 
     * @type {string}
     * @memberof AdminCollectionUpdate
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof AdminCollectionUpdate
     */
    readonly updatedAt?: string;
}
/**
 * 
 * @export
 * @interface ApiCollectionV1AdminCollectionsDelete200Response
 */
export interface ApiCollectionV1AdminCollectionsDelete200Response {
    /**
     * 
     * @type {string}
     * @memberof ApiCollectionV1AdminCollectionsDelete200Response
     */
    id?: string;
    /**
     * 
     * @type {boolean}
     * @memberof ApiCollectionV1AdminCollectionsDelete200Response
     */
    deleted?: boolean;
}
/**
 * 
 * @export
 * @interface ApiCollectionV1AdminCollectionsProductsDelete200Response
 */
export interface ApiCollectionV1AdminCollectionsProductsDelete200Response {
    /**
     * 
     * @type {string}
     * @memberof ApiCollectionV1AdminCollectionsProductsDelete200Response
     */
    id?: string;
    /**
     * 
     * @type {string}
     * @memberof ApiCollectionV1AdminCollectionsProductsDelete200Response
     */
    productId?: string;
    /**
     * 
     * @type {boolean}
     * @memberof ApiCollectionV1AdminCollectionsProductsDelete200Response
     */
    removed?: boolean;
}
/**
 * 
 * @export
 * @interface ApiCollectionV1UserCollectionsDelete200Response
 */
export interface ApiCollectionV1UserCollectionsDelete200Response {
    /**
     * 
     * @type {string}
     * @memberof ApiCollectionV1UserCollectionsDelete200Response
     */
    id?: string;
    /**
     * 
     * @type {string}
     * @memberof ApiCollectionV1UserCollectionsDelete200Response
     */
    detail?: string;
    /**
     * 
     * @type {boolean}
     * @memberof ApiCollectionV1UserCollectionsDelete200Response
     */
    isDeleted?: boolean;
}
/**
 * 
 * @export
 * @interface ApiCollectionV1UserCollectionsProductsDelete200Response
 */
export interface ApiCollectionV1UserCollectionsProductsDelete200Response {
    /**
     * Collection ID.
     * @type {string}
     * @memberof ApiCollectionV1UserCollectionsProductsDelete200Response
     */
    id?: string;
    /**
     * 
     * @type {string}
     * @memberof ApiCollectionV1UserCollectionsProductsDelete200Response
     */
    detail?: string;
    /**
     * True if the collection was deleted because it became empty.
     * @type {boolean}
     * @memberof ApiCollectionV1UserCollectionsProductsDelete200Response
     */
    isDeleted?: boolean;
}
/**
 * 
 * @export
 * @interface ApiCommentV1CommentList200Response
 */
export interface ApiCommentV1CommentList200Response {
    /**
     * 
     * @type {number}
     * @memberof ApiCommentV1CommentList200Response
     */
    count?: number;
    /**
     * 
     * @type {string}
     * @memberof ApiCommentV1CommentList200Response
     */
    next?: string;
    /**
     * 
     * @type {string}
     * @memberof ApiCommentV1CommentList200Response
     */
    previous?: string;
    /**
     * 
     * @type {Array<ProductComment>}
     * @memberof ApiCommentV1CommentList200Response
     */
    results?: Array<ProductComment>;
}
/**
 * 
 * @export
 * @interface ApiCommentV1VerifyCommentList200Response
 */
export interface ApiCommentV1VerifyCommentList200Response {
    /**
     * 
     * @type {boolean}
     * @memberof ApiCommentV1VerifyCommentList200Response
     */
    canComment?: boolean;
}
/**
 * 
 * @export
 * @interface ApiEngagementV1FollowsCheckRead200Response
 */
export interface ApiEngagementV1FollowsCheckRead200Response {
    /**
     * 
     * @type {boolean}
     * @memberof ApiEngagementV1FollowsCheckRead200Response
     */
    following?: boolean;
}
/**
 * 
 * @export
 * @interface ApiInstageramV1InstagramPostsDelete200Response
 */
export interface ApiInstageramV1InstagramPostsDelete200Response {
    /**
     * 
     * @type {string}
     * @memberof ApiInstageramV1InstagramPostsDelete200Response
     */
    detail?: string;
    /**
     * 
     * @type {string}
     * @memberof ApiInstageramV1InstagramPostsDelete200Response
     */
    id?: string;
}
/**
 * 
 * @export
 * @interface ApiInstageramV1InstagramSyncCreate201Response
 */
export interface ApiInstageramV1InstagramSyncCreate201Response {
    /**
     * 
     * @type {string}
     * @memberof ApiInstageramV1InstagramSyncCreate201Response
     */
    detail: string;
    /**
     * 
     * @type {number}
     * @memberof ApiInstageramV1InstagramSyncCreate201Response
     */
    remainingToday: number;
}
/**
 * 
 * @export
 * @interface ApiSellerV1SellersList200Response
 */
export interface ApiSellerV1SellersList200Response {
    /**
     * 
     * @type {number}
     * @memberof ApiSellerV1SellersList200Response
     */
    count: number;
    /**
     * 
     * @type {string}
     * @memberof ApiSellerV1SellersList200Response
     */
    next?: string | null;
    /**
     * 
     * @type {string}
     * @memberof ApiSellerV1SellersList200Response
     */
    previous?: string | null;
    /**
     * 
     * @type {Array<SellerList>}
     * @memberof ApiSellerV1SellersList200Response
     */
    results: Array<SellerList>;
}
/**
 * 
 * @export
 * @interface ApiUserV1LogoutCreateRequest
 */
export interface ApiUserV1LogoutCreateRequest {
    /**
     * 
     * @type {string}
     * @memberof ApiUserV1LogoutCreateRequest
     */
    refreshToken: string;
}
/**
 * 
 * @export
 * @interface Attribute
 */
export interface Attribute {
    /**
     * 
     * @type {string}
     * @memberof Attribute
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof Attribute
     */
    name: string;
    /**
     * 
     * @type {Set<string>}
     * @memberof Attribute
     */
    categories: Set<string>;
}
/**
 * 
 * @export
 * @interface AttributeValueInfo
 */
export interface AttributeValueInfo {
    /**
     * 
     * @type {string}
     * @memberof AttributeValueInfo
     */
    persian: string;
    /**
     * 
     * @type {string}
     * @memberof AttributeValueInfo
     */
    detail: string;
}
/**
 * 
 * @export
 * @interface AutocompleteResponse
 */
export interface AutocompleteResponse {
    /**
     * 
     * @type {Array<AutocompleteSuggestion>}
     * @memberof AutocompleteResponse
     */
    suggestions: Array<AutocompleteSuggestion>;
}
/**
 * 
 * @export
 * @interface AutocompleteSuggestion
 */
export interface AutocompleteSuggestion {
    /**
     * 
     * @type {string}
     * @memberof AutocompleteSuggestion
     */
    type: AutocompleteSuggestionTypeEnum;
    /**
     * 
     * @type {string}
     * @memberof AutocompleteSuggestion
     */
    text?: string;
    /**
     * 
     * @type {string}
     * @memberof AutocompleteSuggestion
     */
    name?: string;
    /**
     * 
     * @type {string}
     * @memberof AutocompleteSuggestion
     */
    id?: string;
}


/**
 * @export
 */
export const AutocompleteSuggestionTypeEnum = {
    Product: 'product',
    Seller: 'seller',
    Category: 'category'
} as const;
export type AutocompleteSuggestionTypeEnum = typeof AutocompleteSuggestionTypeEnum[keyof typeof AutocompleteSuggestionTypeEnum];

/**
 * 
 * @export
 * @interface BankAccount
 */
export interface BankAccount {
    /**
     * 
     * @type {string}
     * @memberof BankAccount
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof BankAccount
     */
    accountHolderName: string | null;
    /**
     * 
     * @type {string}
     * @memberof BankAccount
     */
    iban: string;
    /**
     * 
     * @type {string}
     * @memberof BankAccount
     */
    cardNumber: string | null;
    /**
     * 
     * @type {string}
     * @memberof BankAccount
     */
    bankName: string | null;
    /**
     * 
     * @type {boolean}
     * @memberof BankAccount
     */
    isVerified: boolean;
    /**
     * 
     * @type {string}
     * @memberof BankAccount
     */
    createdAt: string;
    /**
     * 
     * @type {string}
     * @memberof BankAccount
     */
    updatedAt: string;
    /**
     * 
     * @type {string}
     * @memberof BankAccount
     */
    readonly sellerBalance?: string;
}
/**
 * 
 * @export
 * @interface BankAccountCreate
 */
export interface BankAccountCreate {
    /**
     * 
     * @type {string}
     * @memberof BankAccountCreate
     */
    iban: string;
    /**
     * 
     * @type {string}
     * @memberof BankAccountCreate
     */
    cardNumber: string;
}
/**
 * 
 * @export
 * @interface BankAccountDeleteResponse
 */
export interface BankAccountDeleteResponse {
    /**
     * 
     * @type {string}
     * @memberof BankAccountDeleteResponse
     */
    id: string;
    /**
     * 
     * @type {string}
     * @memberof BankAccountDeleteResponse
     */
    message: string;
}
/**
 * 
 * @export
 * @interface BookmarkCheckResponse
 */
export interface BookmarkCheckResponse {
    /**
     * 
     * @type {boolean}
     * @memberof BookmarkCheckResponse
     */
    bookmarked: boolean;
}
/**
 * 
 * @export
 * @interface BookmarkCountResponse
 */
export interface BookmarkCountResponse {
    /**
     * 
     * @type {number}
     * @memberof BookmarkCountResponse
     */
    count: number;
}
/**
 * 
 * @export
 * @interface BookmarkCreate
 */
export interface BookmarkCreate {
    /**
     * 
     * @type {string}
     * @memberof BookmarkCreate
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof BookmarkCreate
     */
    productId: string;
    /**
     * 
     * @type {string}
     * @memberof BookmarkCreate
     */
    readonly createdAt?: string;
}
/**
 * 
 * @export
 * @interface BookmarkDeleteResponse
 */
export interface BookmarkDeleteResponse {
    /**
     * 
     * @type {string}
     * @memberof BookmarkDeleteResponse
     */
    message: string;
}
/**
 * 
 * @export
 * @interface BookmarkList
 */
export interface BookmarkList {
    /**
     * 
     * @type {string}
     * @memberof BookmarkList
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof BookmarkList
     */
    readonly productId?: string;
    /**
     * 
     * @type {string}
     * @memberof BookmarkList
     */
    readonly productTitle?: string;
    /**
     * 
     * @type {string}
     * @memberof BookmarkList
     */
    readonly productImage?: string;
    /**
     * 
     * @type {string}
     * @memberof BookmarkList
     */
    readonly basePrice?: string;
    /**
     * 
     * @type {string}
     * @memberof BookmarkList
     */
    readonly discountPrice?: string;
    /**
     * 
     * @type {string}
     * @memberof BookmarkList
     */
    readonly discountPercent?: string;
    /**
     * 
     * @type {string}
     * @memberof BookmarkList
     */
    readonly createdAt?: string;
}
/**
 * 
 * @export
 * @interface BookmarkListPaginated
 */
export interface BookmarkListPaginated {
    /**
     * 
     * @type {number}
     * @memberof BookmarkListPaginated
     */
    count: number;
    /**
     * 
     * @type {string}
     * @memberof BookmarkListPaginated
     */
    next: string | null;
    /**
     * 
     * @type {string}
     * @memberof BookmarkListPaginated
     */
    previous: string | null;
    /**
     * 
     * @type {Array<BookmarkList>}
     * @memberof BookmarkListPaginated
     */
    results: Array<BookmarkList>;
}
/**
 * 
 * @export
 * @interface CartAdd
 */
export interface CartAdd {
    /**
     * 
     * @type {string}
     * @memberof CartAdd
     */
    productVariantId: string;
    /**
     * 
     * @type {number}
     * @memberof CartAdd
     */
    quantity: number;
}
/**
 * 
 * @export
 * @interface CartAttributeInfo
 */
export interface CartAttributeInfo {
    /**
     * 
     * @type {string}
     * @memberof CartAttributeInfo
     */
    persian: string;
    /**
     * 
     * @type {string}
     * @memberof CartAttributeInfo
     */
    detail: string;
}
/**
 * 
 * @export
 * @interface CartAttributeValue
 */
export interface CartAttributeValue {
    /**
     * 
     * @type {string}
     * @memberof CartAttributeValue
     */
    value: string;
    /**
     * 
     * @type {CartAttributeInfo}
     * @memberof CartAttributeValue
     */
    info: CartAttributeInfo;
}
/**
 * 
 * @export
 * @interface CartDetail
 */
export interface CartDetail {
    /**
     * 
     * @type {string}
     * @memberof CartDetail
     */
    readonly id?: string;
    /**
     * 
     * @type {boolean}
     * @memberof CartDetail
     */
    isCheckedOut?: boolean;
    /**
     * 
     * @type {string}
     * @memberof CartDetail
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {Array<CartItem>}
     * @memberof CartDetail
     */
    readonly items?: Array<CartItem>;
    /**
     * 
     * @type {SellerInfo}
     * @memberof CartDetail
     */
    seller?: SellerInfo;
    /**
     * 
     * @type {string}
     * @memberof CartDetail
     */
    readonly discountValue?: string;
}
/**
 * 
 * @export
 * @interface CartItem
 */
export interface CartItem {
    /**
     * 
     * @type {string}
     * @memberof CartItem
     */
    readonly id?: string;
    /**
     * 
     * @type {ProductVariantDetail}
     * @memberof CartItem
     */
    productVariant?: ProductVariantDetail;
    /**
     * 
     * @type {number}
     * @memberof CartItem
     */
    quantity: number;
    /**
     * 
     * @type {string}
     * @memberof CartItem
     */
    priceAtPurchase: string;
}
/**
 * 
 * @export
 * @interface CartItemEdit
 */
export interface CartItemEdit {
    /**
     * 
     * @type {string}
     * @memberof CartItemEdit
     */
    itemId: string;
    /**
     * 
     * @type {number}
     * @memberof CartItemEdit
     */
    quantity: number;
}
/**
 * 
 * @export
 * @interface CashOut
 */
export interface CashOut {
    /**
     * 
     * @type {string}
     * @memberof CashOut
     */
    shippingInfoId: string;
}
/**
 * 
 * @export
 * @interface CashOutGatewayResponse
 */
export interface CashOutGatewayResponse {
    /**
     * 
     * @type {boolean}
     * @memberof CashOutGatewayResponse
     */
    paymentRequired: boolean;
    /**
     * 
     * @type {string}
     * @memberof CashOutGatewayResponse
     */
    redirect: string;
}
/**
 * 
 * @export
 * @interface CashOutSuccessResponse
 */
export interface CashOutSuccessResponse {
    /**
     * 
     * @type {string}
     * @memberof CashOutSuccessResponse
     */
    message: string;
    /**
     * 
     * @type {string}
     * @memberof CashOutSuccessResponse
     */
    orderId: string;
    /**
     * 
     * @type {InvoiceInfo}
     * @memberof CashOutSuccessResponse
     */
    invoice: InvoiceInfo;
    /**
     * 
     * @type {string}
     * @memberof CashOutSuccessResponse
     */
    redirect: string;
}
/**
 * 
 * @export
 * @interface City
 */
export interface City {
    /**
     * 
     * @type {number}
     * @memberof City
     */
    readonly id?: number;
    /**
     * 
     * @type {string}
     * @memberof City
     */
    name: string;
}
/**
 * 
 * @export
 * @interface CollectionCursorPage
 */
export interface CollectionCursorPage {
    /**
     * 
     * @type {string}
     * @memberof CollectionCursorPage
     */
    next: string | null;
    /**
     * 
     * @type {string}
     * @memberof CollectionCursorPage
     */
    previous: string | null;
    /**
     * 
     * @type {Array<CollectionListItem>}
     * @memberof CollectionCursorPage
     */
    results: Array<CollectionListItem>;
}
/**
 * 
 * @export
 * @interface CollectionDetailWithProducts
 */
export interface CollectionDetailWithProducts {
    /**
     * 
     * @type {string}
     * @memberof CollectionDetailWithProducts
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof CollectionDetailWithProducts
     */
    readonly title?: string;
    /**
     * 
     * @type {string}
     * @memberof CollectionDetailWithProducts
     */
    readonly description?: string | null;
    /**
     * 
     * @type {string}
     * @memberof CollectionDetailWithProducts
     */
    readonly coverImageUrl?: string | null;
    /**
     * 
     * @type {boolean}
     * @memberof CollectionDetailWithProducts
     */
    readonly isPublic?: boolean;
    /**
     * 
     * @type {string}
     * @memberof CollectionDetailWithProducts
     */
    readonly creatorType?: string;
    /**
     * 
     * @type {string}
     * @memberof CollectionDetailWithProducts
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof CollectionDetailWithProducts
     */
    readonly updatedAt?: string;
    /**
     * 
     * @type {number}
     * @memberof CollectionDetailWithProducts
     */
    readonly productCount?: number;
    /**
     * 
     * @type {CollectionProductsCursorPage}
     * @memberof CollectionDetailWithProducts
     */
    products?: CollectionProductsCursorPage;
    /**
     * 
     * @type {Array<SellerMini>}
     * @memberof CollectionDetailWithProducts
     */
    readonly sellers?: Array<SellerMini>;
}
/**
 * 
 * @export
 * @interface CollectionListItem
 */
export interface CollectionListItem {
    /**
     * 
     * @type {string}
     * @memberof CollectionListItem
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof CollectionListItem
     */
    readonly title?: string;
    /**
     * 
     * @type {string}
     * @memberof CollectionListItem
     */
    readonly description?: string | null;
    /**
     * 
     * @type {string}
     * @memberof CollectionListItem
     */
    readonly coverImageUrl?: string | null;
    /**
     * 
     * @type {boolean}
     * @memberof CollectionListItem
     */
    readonly isPublic?: boolean;
    /**
     * 
     * @type {string}
     * @memberof CollectionListItem
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof CollectionListItem
     */
    readonly updatedAt?: string;
    /**
     * 
     * @type {number}
     * @memberof CollectionListItem
     */
    readonly productCount?: number;
}
/**
 * 
 * @export
 * @interface CollectionProductItem
 */
export interface CollectionProductItem {
    /**
     * 
     * @type {string}
     * @memberof CollectionProductItem
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof CollectionProductItem
     */
    readonly title?: string;
    /**
     * 
     * @type {Array<string>}
     * @memberof CollectionProductItem
     */
    readonly imageUrls?: Array<string>;
    /**
     * 
     * @type {string}
     * @memberof CollectionProductItem
     */
    readonly basePrice?: string;
    /**
     * 
     * @type {boolean}
     * @memberof CollectionProductItem
     */
    readonly isActive?: boolean;
    /**
     * 
     * @type {string}
     * @memberof CollectionProductItem
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {SellerMini}
     * @memberof CollectionProductItem
     */
    seller?: SellerMini;
}
/**
 * 
 * @export
 * @interface CollectionProductsCursorPage
 */
export interface CollectionProductsCursorPage {
    /**
     * 
     * @type {string}
     * @memberof CollectionProductsCursorPage
     */
    next: string | null;
    /**
     * 
     * @type {string}
     * @memberof CollectionProductsCursorPage
     */
    previous: string | null;
    /**
     * 
     * @type {Array<CollectionProductItem>}
     * @memberof CollectionProductsCursorPage
     */
    results: Array<CollectionProductItem>;
}
/**
 * 
 * @export
 * @interface Courier
 */
export interface Courier {
    /**
     * 
     * @type {string}
     * @memberof Courier
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof Courier
     */
    name: string;
    /**
     * Base delivery price when freight is prepaid.
     * @type {string}
     * @memberof Courier
     */
    basePrice: string;
    /**
     * Use {code} placeholder. Leave empty for face-to-face/pickup.
     * @type {string}
     * @memberof Courier
     */
    trackingUrlTemplate?: string | null;
    /**
     * If true, this courier is pickup/in-person; no shipping address required.
     * @type {boolean}
     * @memberof Courier
     */
    isFaceToFace?: boolean;
    /**
     * If true, freight cost is paid by receiver (balance freight / pay on delivery).
     * @type {boolean}
     * @memberof Courier
     */
    isFreightCollect?: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof Courier
     */
    isActive?: boolean;
    /**
     * 
     * @type {string}
     * @memberof Courier
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof Courier
     */
    readonly updatedAt?: string;
}
/**
 * 
 * @export
 * @interface Discount
 */
export interface Discount {
    /**
     * 
     * @type {string}
     * @memberof Discount
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof Discount
     */
    name: string;
    /**
     * 
     * @type {number}
     * @memberof Discount
     */
    code: number;
    /**
     * 
     * @type {string}
     * @memberof Discount
     */
    discountType: DiscountDiscountTypeEnum;
    /**
     * 
     * @type {string}
     * @memberof Discount
     */
    value: string;
    /**
     * 
     * @type {string}
     * @memberof Discount
     */
    minPurchaseAmount?: string | null;
    /**
     * 
     * @type {string}
     * @memberof Discount
     */
    maxDiscountAmount?: string | null;
    /**
     * 
     * @type {string}
     * @memberof Discount
     */
    validFrom: string;
    /**
     * 
     * @type {string}
     * @memberof Discount
     */
    validTo: string;
    /**
     * 
     * @type {boolean}
     * @memberof Discount
     */
    isActive?: boolean;
}


/**
 * @export
 */
export const DiscountDiscountTypeEnum = {
    UserBased: 'user_based',
    CountBased: 'count_based',
    ValueBased: 'value_based'
} as const;
export type DiscountDiscountTypeEnum = typeof DiscountDiscountTypeEnum[keyof typeof DiscountDiscountTypeEnum];

/**
 * 
 * @export
 * @interface DiscountVerifyRequest
 */
export interface DiscountVerifyRequest {
    /**
     * 
     * @type {number}
     * @memberof DiscountVerifyRequest
     */
    code: number;
    /**
     * 
     * @type {string}
     * @memberof DiscountVerifyRequest
     */
    cartId: string;
}
/**
 * 
 * @export
 * @interface DiscountVerifyResponse
 */
export interface DiscountVerifyResponse {
    /**
     * 
     * @type {boolean}
     * @memberof DiscountVerifyResponse
     */
    valid: boolean;
    /**
     * 
     * @type {string}
     * @memberof DiscountVerifyResponse
     */
    message: string;
    /**
     * 
     * @type {string}
     * @memberof DiscountVerifyResponse
     */
    reason?: string;
    /**
     * 
     * @type {string}
     * @memberof DiscountVerifyResponse
     */
    discountId?: string;
    /**
     * 
     * @type {number}
     * @memberof DiscountVerifyResponse
     */
    discountValue?: number;
    /**
     * 
     * @type {number}
     * @memberof DiscountVerifyResponse
     */
    finalPrice?: number;
}
/**
 * 
 * @export
 * @interface FollowCreate
 */
export interface FollowCreate {
    /**
     * 
     * @type {string}
     * @memberof FollowCreate
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof FollowCreate
     */
    followingId: string;
    /**
     * 
     * @type {string}
     * @memberof FollowCreate
     */
    readonly createdAt?: string;
}
/**
 * 
 * @export
 * @interface FollowList
 */
export interface FollowList {
    /**
     * 
     * @type {string}
     * @memberof FollowList
     */
    sellerId: string;
    /**
     * 
     * @type {string}
     * @memberof FollowList
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof FollowList
     */
    readonly storeName?: string;
    /**
     * 
     * @type {string}
     * @memberof FollowList
     */
    readonly username?: string;
    /**
     * 
     * @type {string}
     * @memberof FollowList
     */
    readonly storeLogo?: string;
}
/**
 * 
 * @export
 * @interface FullProductCreate
 */
export interface FullProductCreate {
    /**
     * 
     * @type {string}
     * @memberof FullProductCreate
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof FullProductCreate
     */
    title: string;
    /**
     * 
     * @type {string}
     * @memberof FullProductCreate
     */
    description: string;
    /**
     * 
     * @type {string}
     * @memberof FullProductCreate
     */
    basePrice: string;
    /**
     * 
     * @type {Array<string>}
     * @memberof FullProductCreate
     */
    imageUrls?: Array<string>;
    /**
     * 
     * @type {string}
     * @memberof FullProductCreate
     */
    category?: string | null;
    /**
     * 
     * @type {Array<ProductAttributeName>}
     * @memberof FullProductCreate
     */
    attributes: Array<ProductAttributeName>;
    /**
     * 
     * @type {Array<ProductVariant>}
     * @memberof FullProductCreate
     */
    variants?: Array<ProductVariant>;
    /**
     *
     * @type {number}
     * @memberof FullProductCreate
     */
    instagramPostId?: number;
    /**
     * Seller-filled size guide (راهنمای سایز).
     * @type {SizeChart}
     * @memberof FullProductCreate
     */
    sizeChart?: SizeChart | null;
}
/**
 * 
 * @export
 * @interface FullProductUpdate
 */
export interface FullProductUpdate {
    /**
     * 
     * @type {string}
     * @memberof FullProductUpdate
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof FullProductUpdate
     */
    title: string;
    /**
     * 
     * @type {string}
     * @memberof FullProductUpdate
     */
    description: string;
    /**
     * 
     * @type {string}
     * @memberof FullProductUpdate
     */
    basePrice: string;
    /**
     * 
     * @type {Array<string>}
     * @memberof FullProductUpdate
     */
    imageUrls?: Array<string>;
    /**
     * 
     * @type {string}
     * @memberof FullProductUpdate
     */
    category?: string | null;
    /**
     * 
     * @type {Array<ProductAttributeName>}
     * @memberof FullProductUpdate
     */
    attributes?: Array<ProductAttributeName>;
    /**
     *
     * @type {Array<ProductVariant>}
     * @memberof FullProductUpdate
     */
    variants?: Array<ProductVariant>;
    /**
     * Seller-filled size guide (راهنمای سایز).
     * @type {SizeChart}
     * @memberof FullProductUpdate
     */
    sizeChart?: SizeChart | null;
}
/**
 * 
 * @export
 * @interface GeneratedProduct
 */
export interface GeneratedProduct {
    /**
     * 
     * @type {string}
     * @memberof GeneratedProduct
     */
    title: string;
    /**
     * 
     * @type {string}
     * @memberof GeneratedProduct
     */
    description: string;
    /**
     * 
     * @type {number}
     * @memberof GeneratedProduct
     */
    basePrice: number;
    /**
     * 
     * @type {Array<string>}
     * @memberof GeneratedProduct
     */
    imageUrls: Array<string>;
    /**
     * 
     * @type {string}
     * @memberof GeneratedProduct
     */
    category: string;
    /**
     * 
     * @type {Array<Variant>}
     * @memberof GeneratedProduct
     */
    variants: Array<Variant>;
    /**
     * 
     * @type {{ [key: string]: Array<APGSAttributeInfo>; }}
     * @memberof GeneratedProduct
     */
    attributes: { [key: string]: Array<APGSAttributeInfo>; };
}
/**
 * 
 * @export
 * @interface GroupedAttribute
 */
export interface GroupedAttribute {
    /**
     * 
     * @type {string}
     * @memberof GroupedAttribute
     */
    id: string;
    /**
     * 
     * @type {Array<GroupedAttributeValue>}
     * @memberof GroupedAttribute
     */
    values: Array<GroupedAttributeValue>;
}
/**
 * 
 * @export
 * @interface GroupedAttributeValue
 */
export interface GroupedAttributeValue {
    /**
     * 
     * @type {string}
     * @memberof GroupedAttributeValue
     */
    id: string;
    /**
     * 
     * @type {string}
     * @memberof GroupedAttributeValue
     */
    value: string;
    /**
     * 
     * @type {AttributeValueInfo}
     * @memberof GroupedAttributeValue
     */
    info: AttributeValueInfo;
}
/**
 * 
 * @export
 * @interface HomeCategory
 */
export interface HomeCategory {
    /**
     * 
     * @type {string}
     * @memberof HomeCategory
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof HomeCategory
     */
    readonly categoryId?: string;
    /**
     * 
     * @type {string}
     * @memberof HomeCategory
     */
    readonly categoryName?: string;
    /**
     * Full URL of the image to show for this category.
     * @type {string}
     * @memberof HomeCategory
     */
    readonly imageUrl?: string;
}
/**
 * 
 * @export
 * @interface ImageUploadResponse
 */
export interface ImageUploadResponse {
    /**
     * 
     * @type {string}
     * @memberof ImageUploadResponse
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof ImageUploadResponse
     */
    readonly originalUrl?: string;
    /**
     * 
     * @type {string}
     * @memberof ImageUploadResponse
     */
    readonly createdAt?: string;
    /**
     * Usage of the stored image.
     * @type {string}
     * @memberof ImageUploadResponse
     */
    readonly usage?: string;
}
/**
 * 
 * @export
 * @interface InstagramPostDetail
 */
export interface InstagramPostDetail {
    /**
     * 
     * @type {number}
     * @memberof InstagramPostDetail
     */
    readonly id?: number;
    /**
     * 
     * @type {string}
     * @memberof InstagramPostDetail
     */
    readonly igPostId?: string;
    /**
     * 
     * @type {string}
     * @memberof InstagramPostDetail
     */
    readonly mediaType?: InstagramPostDetailMediaTypeEnum;
    /**
     * 
     * @type {string}
     * @memberof InstagramPostDetail
     */
    readonly caption?: string;
    /**
     * Thumbnail preview URL.
     * @type {string}
     * @memberof InstagramPostDetail
     */
    thumbnailUrl: string;
    /**
     * List of media URLs (images/videos).
     * @type {Array<string>}
     * @memberof InstagramPostDetail
     */
    localMedia: Array<string>;
    /**
     * 
     * @type {string}
     * @memberof InstagramPostDetail
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {boolean}
     * @memberof InstagramPostDetail
     */
    readonly convertedToProduct?: boolean;
    /**
     * 
     * @type {ProductDetail}
     * @memberof InstagramPostDetail
     */
    linkedProduct?: ProductDetail;
}


/**
 * @export
 */
export const InstagramPostDetailMediaTypeEnum = {
    Image: 'image',
    Video: 'video',
    Carousel: 'carousel'
} as const;
export type InstagramPostDetailMediaTypeEnum = typeof InstagramPostDetailMediaTypeEnum[keyof typeof InstagramPostDetailMediaTypeEnum];

/**
 * List of Instagram posts.
 * @export
 * @interface InstagramPostList
 */
export interface InstagramPostList {
    /**
     * 
     * @type {number}
     * @memberof InstagramPostList
     */
    readonly id?: number;
    /**
     * 
     * @type {string}
     * @memberof InstagramPostList
     */
    igPostId: string;
    /**
     * 
     * @type {string}
     * @memberof InstagramPostList
     */
    mediaType: InstagramPostListMediaTypeEnum;
    /**
     * 
     * @type {string}
     * @memberof InstagramPostList
     */
    caption?: string;
    /**
     * 
     * @type {string}
     * @memberof InstagramPostList
     */
    readonly thumbnailUrl?: string;
    /**
     * 
     * @type {Array<string>}
     * @memberof InstagramPostList
     */
    readonly localMedia?: Array<string>;
    /**
     * 
     * @type {string}
     * @memberof InstagramPostList
     */
    createdAt: string;
    /**
     * 
     * @type {boolean}
     * @memberof InstagramPostList
     */
    convertedToProduct?: boolean;
}


/**
 * @export
 */
export const InstagramPostListMediaTypeEnum = {
    Image: 'image',
    Video: 'video',
    Carousel: 'carousel'
} as const;
export type InstagramPostListMediaTypeEnum = typeof InstagramPostListMediaTypeEnum[keyof typeof InstagramPostListMediaTypeEnum];

/**
 * 
 * @export
 * @interface InstagramSyncRequest
 */
export interface InstagramSyncRequest {
    /**
     * 
     * @type {number}
     * @memberof InstagramSyncRequest
     */
    count: number;
}
/**
 * 
 * @export
 * @interface InstagramVerification
 */
export interface InstagramVerification {
    /**
     * 
     * @type {string}
     * @memberof InstagramVerification
     */
    instagramUsername: string;
    /**
     * 
     * @type {boolean}
     * @memberof InstagramVerification
     */
    readonly isVerified?: boolean;
}
/**
 * 
 * @export
 * @interface Invoice
 */
export interface Invoice {
    /**
     * 
     * @type {string}
     * @memberof Invoice
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof Invoice
     */
    readonly invoiceNumber?: string;
    /**
     * 
     * @type {string}
     * @memberof Invoice
     */
    readonly issuedDate?: string;
    /**
     * 
     * @type {string}
     * @memberof Invoice
     */
    readonly dueDate?: string | null;
    /**
     * 
     * @type {string}
     * @memberof Invoice
     */
    readonly totalAmount?: string;
    /**
     * 
     * @type {boolean}
     * @memberof Invoice
     */
    readonly paid?: boolean;
    /**
     * 
     * @type {string}
     * @memberof Invoice
     */
    readonly pdfUrl?: string | null;
    /**
     * 
     * @type {string}
     * @memberof Invoice
     */
    readonly paymentMethod?: InvoicePaymentMethodEnum;
    /**
     * 
     * @type {string}
     * @memberof Invoice
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {Array<InvoiceOrderItem>}
     * @memberof Invoice
     */
    readonly items?: Array<InvoiceOrderItem>;
    /**
     * 
     * @type {string}
     * @memberof Invoice
     */
    readonly discountValue?: string;
}


/**
 * @export
 */
export const InvoicePaymentMethodEnum = {
    Wallet: 'wallet',
    Bank: 'bank',
    Cod: 'cod'
} as const;
export type InvoicePaymentMethodEnum = typeof InvoicePaymentMethodEnum[keyof typeof InvoicePaymentMethodEnum];

/**
 * 
 * @export
 * @interface InvoiceAndShippingResponse
 */
export interface InvoiceAndShippingResponse {
    /**
     * 
     * @type {Invoice}
     * @memberof InvoiceAndShippingResponse
     */
    invoice: Invoice;
    /**
     * 
     * @type {ShippingInfoDetail}
     * @memberof InvoiceAndShippingResponse
     */
    shippingInfo: ShippingInfoDetail;
}
/**
 * 
 * @export
 * @interface InvoiceInfo
 */
export interface InvoiceInfo {
    /**
     * 
     * @type {string}
     * @memberof InvoiceInfo
     */
    invoiceNumber: string;
    /**
     * 
     * @type {string}
     * @memberof InvoiceInfo
     */
    totalAmount: string;
    /**
     * 
     * @type {string}
     * @memberof InvoiceInfo
     */
    paymentMethod: string;
}
/**
 * 
 * @export
 * @interface InvoiceOrderItem
 */
export interface InvoiceOrderItem {
    /**
     * 
     * @type {string}
     * @memberof InvoiceOrderItem
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof InvoiceOrderItem
     */
    readonly productId?: string;
    /**
     * 
     * @type {string}
     * @memberof InvoiceOrderItem
     */
    readonly productTitle?: string;
    /**
     * 
     * @type {ProductVariantDetail}
     * @memberof InvoiceOrderItem
     */
    variant?: ProductVariantDetail;
    /**
     * 
     * @type {number}
     * @memberof InvoiceOrderItem
     */
    readonly quantity?: number;
    /**
     * 
     * @type {string}
     * @memberof InvoiceOrderItem
     */
    readonly unitPrice?: string;
    /**
     * 
     * @type {string}
     * @memberof InvoiceOrderItem
     */
    readonly totalPrice?: string;
}
/**
 * 
 * @export
 * @interface LastMessage
 */
export interface LastMessage {
    /**
     * 
     * @type {string}
     * @memberof LastMessage
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof LastMessage
     */
    readonly content?: string;
    /**
     * 
     * @type {string}
     * @memberof LastMessage
     */
    readonly senderId?: string;
    /**
     * 
     * @type {string}
     * @memberof LastMessage
     */
    readonly senderUsername?: string;
    /**
     *
     * @type {string}
     * @memberof LastMessage
     */
    readonly createdAt?: string;
    /**
     * Product shared into the chat, if this message is a product card.
     * @type {ChatProductCard}
     * @memberof LastMessage
     */
    readonly product?: ChatProductCard | null;
    /**
     * Image URL when the last message is a seller-attached image.
     * @type {string}
     * @memberof LastMessage
     */
    readonly imageUrl?: string | null;
}
/**
 * Minimal product info rendered as a card inside a chat.
 * @export
 * @interface ChatProductCard
 */
export interface ChatProductCard {
    /**
     *
     * @type {string}
     * @memberof ChatProductCard
     */
    readonly id?: string;
    /**
     *
     * @type {string}
     * @memberof ChatProductCard
     */
    readonly title?: string;
    /**
     *
     * @type {string}
     * @memberof ChatProductCard
     */
    readonly basePrice?: string;
    /**
     *
     * @type {string}
     * @memberof ChatProductCard
     */
    readonly primaryImage?: string | null;
}
/**
 *
 * @export
 * @interface Login
 */
export interface Login {
    /**
     * 
     * @type {string}
     * @memberof Login
     */
    phoneNumber: string;
    /**
     * 
     * @type {string}
     * @memberof Login
     */
    password?: string;
    /**
     * 
     * @type {string}
     * @memberof Login
     */
    otp?: string;
}
/**
 * 
 * @export
 * @interface LoginOTPSend
 */
export interface LoginOTPSend {
    /**
     * 
     * @type {string}
     * @memberof LoginOTPSend
     */
    phoneNumber: string;
}
/**
 * 
 * @export
 * @interface MarkMessagesAsReadResponse
 */
export interface MarkMessagesAsReadResponse {
    /**
     * 
     * @type {string}
     * @memberof MarkMessagesAsReadResponse
     */
    marked: string;
}
/**
 * 
 * @export
 * @interface MessageCreate
 */
export interface MessageCreate {
    /**
     * 
     * @type {string}
     * @memberof MessageCreate
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof MessageCreate
     */
    content: string;
    /**
     * 
     * @type {string}
     * @memberof MessageCreate
     */
    replyTo?: string | null;
}
/**
 * 
 * @export
 * @interface MessageList
 */
export interface MessageList {
    /**
     * 
     * @type {string}
     * @memberof MessageList
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof MessageList
     */
    readonly sender?: string;
    /**
     * 
     * @type {string}
     * @memberof MessageList
     */
    readonly senderUsername?: string;
    /**
     * 
     * @type {string}
     * @memberof MessageList
     */
    readonly content?: string;
    /**
     * 
     * @type {string}
     * @memberof MessageList
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof MessageList
     */
    readonly replyTo?: string | null;
    /**
     * 
     * @type {string}
     * @memberof MessageList
     */
    readonly replyContent?: string;
    /**
     * 
     * @type {boolean}
     * @memberof MessageList
     */
    readonly isRead?: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof MessageList
     */
    readonly isDeleted?: boolean;
    /**
     *
     * @type {boolean}
     * @memberof MessageList
     */
    readonly isThreadCreator?: boolean;
    /**
     * Product shared into the chat, if this message is a product card.
     * @type {ChatProductCard}
     * @memberof MessageList
     */
    readonly product?: ChatProductCard | null;
    /**
     * URL of an image attachment. Only set for seller-side messages — buyers
     * can only send text.
     * @type {string}
     * @memberof MessageList
     */
    readonly imageUrl?: string | null;
}
/**
 *
 * @export
 * @interface NotificationCreate
 */
export interface NotificationCreate {
    /**
     * 
     * @type {string}
     * @memberof NotificationCreate
     */
    typeCode: string;
    /**
     * 
     * @type {string}
     * @memberof NotificationCreate
     */
    receiverId: string;
    /**
     * 
     * @type {object}
     * @memberof NotificationCreate
     */
    payload: object;
    /**
     * 
     * @type {string}
     * @memberof NotificationCreate
     */
    title: string;
    /**
     * 
     * @type {string}
     * @memberof NotificationCreate
     */
    body?: string;
}
/**
 * 
 * @export
 * @interface NotificationList
 */
export interface NotificationList {
    /**
     * 
     * @type {number}
     * @memberof NotificationList
     */
    readonly id?: number;
    /**
     * 
     * @type {NotificationTypeMini}
     * @memberof NotificationList
     */
    type?: NotificationTypeMini;
    /**
     * 
     * @type {string}
     * @memberof NotificationList
     */
    title: string;
    /**
     * 
     * @type {string}
     * @memberof NotificationList
     */
    body: string;
    /**
     * 
     * @type {object}
     * @memberof NotificationList
     */
    payload?: object | null;
    /**
     * 
     * @type {boolean}
     * @memberof NotificationList
     */
    read?: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof NotificationList
     */
    sentSms?: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof NotificationList
     */
    sentInApp?: boolean;
    /**
     * 
     * @type {string}
     * @memberof NotificationList
     */
    readonly createdAt?: string;
}
/**
 * 
 * @export
 * @interface NotificationMarkRead
 */
export interface NotificationMarkRead {
    /**
     * 
     * @type {boolean}
     * @memberof NotificationMarkRead
     */
    read: boolean;
}
/**
 * 
 * @export
 * @interface NotificationTypeMini
 */
export interface NotificationTypeMini {
    /**
     * 
     * @type {number}
     * @memberof NotificationTypeMini
     */
    readonly id?: number;
    /**
     * 
     * @type {string}
     * @memberof NotificationTypeMini
     */
    code: string;
    /**
     * 
     * @type {string}
     * @memberof NotificationTypeMini
     */
    title: string;
}
/**
 * 
 * @export
 * @interface OTP
 */
export interface OTP {
    /**
     * 
     * @type {string}
     * @memberof OTP
     */
    phoneNumber: string;
}
/**
 * 
 * @export
 * @interface OTPVerification
 */
export interface OTPVerification {
    /**
     * 
     * @type {string}
     * @memberof OTPVerification
     */
    phoneNumber: string;
    /**
     * 
     * @type {string}
     * @memberof OTPVerification
     */
    otp: string;
}
/**
 * 
 * @export
 * @interface OTPVerifyResponse
 */
export interface OTPVerifyResponse {
    /**
     * 
     * @type {string}
     * @memberof OTPVerifyResponse
     */
    message: string;
    /**
     * 
     * @type {string}
     * @memberof OTPVerifyResponse
     */
    accessToken: string;
    /**
     * 
     * @type {string}
     * @memberof OTPVerifyResponse
     */
    refreshToken: string;
}
/**
 * 
 * @export
 * @interface OrderDetail
 */
export interface OrderDetail {
    /**
     * 
     * @type {string}
     * @memberof OrderDetail
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof OrderDetail
     */
    readonly user?: string;
    /**
     * 
     * @type {string}
     * @memberof OrderDetail
     */
    readonly seller?: string;
    /**
     * 
     * @type {string}
     * @memberof OrderDetail
     */
    readonly totalPrice?: string;
    /**
     * 
     * @type {string}
     * @memberof OrderDetail
     */
    readonly productTotalPrice?: string;
    /**
     * 
     * @type {string}
     * @memberof OrderDetail
     */
    readonly shippingPrice?: string;
    /**
     * 
     * @type {ShippingInfoDetail}
     * @memberof OrderDetail
     */
    shippingInfo?: ShippingInfoDetail;
    /**
     * 
     * @type {string}
     * @memberof OrderDetail
     */
    readonly paymentStatus?: OrderDetailPaymentStatusEnum;
    /**
     * 
     * @type {string}
     * @memberof OrderDetail
     */
    readonly status?: OrderDetailStatusEnum;
    /**
     * 
     * @type {string}
     * @memberof OrderDetail
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof OrderDetail
     */
    readonly updatedAt?: string;
    /**
     * 
     * @type {Array<OrderItem>}
     * @memberof OrderDetail
     */
    readonly items?: Array<OrderItem>;
    /**
     * 
     * @type {Invoice}
     * @memberof OrderDetail
     */
    invoice?: Invoice;
    /**
     * 
     * @type {string}
     * @memberof OrderDetail
     */
    readonly storeName?: string;
    /**
     * 
     * @type {string}
     * @memberof OrderDetail
     */
    readonly storeLogo?: string;
}


/**
 * @export
 */
export const OrderDetailPaymentStatusEnum = {
    Pending: 'pending',
    Paid: 'paid',
    Failed: 'failed'
} as const;
export type OrderDetailPaymentStatusEnum = typeof OrderDetailPaymentStatusEnum[keyof typeof OrderDetailPaymentStatusEnum];

/**
 * @export
 */
export const OrderDetailStatusEnum = {
    Pending: 'pending',
    Confirmed: 'confirmed',
    Shipped: 'shipped',
    Delivered: 'delivered',
    Cancelled: 'cancelled'
} as const;
export type OrderDetailStatusEnum = typeof OrderDetailStatusEnum[keyof typeof OrderDetailStatusEnum];

/**
 * 
 * @export
 * @interface OrderItem
 */
export interface OrderItem {
    /**
     * 
     * @type {string}
     * @memberof OrderItem
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof OrderItem
     */
    readonly productId?: string;
    /**
     * 
     * @type {string}
     * @memberof OrderItem
     */
    readonly productTitle?: string;
    /**
     * 
     * @type {ProductVariantDetail}
     * @memberof OrderItem
     */
    variant?: ProductVariantDetail;
    /**
     * 
     * @type {number}
     * @memberof OrderItem
     */
    quantity: number;
    /**
     * 
     * @type {string}
     * @memberof OrderItem
     */
    unitPrice: string;
    /**
     * 
     * @type {string}
     * @memberof OrderItem
     */
    totalPrice: string;
    /**
     * 
     * @type {string}
     * @memberof OrderItem
     */
    status?: OrderItemStatusEnum;
    /**
     * 
     * @type {string}
     * @memberof OrderItem
     */
    readonly createdAt?: string;
}


/**
 * @export
 */
export const OrderItemStatusEnum = {
    Pending: 'pending',
    Accepted: 'accepted',
    Canceled: 'canceled'
} as const;
export type OrderItemStatusEnum = typeof OrderItemStatusEnum[keyof typeof OrderItemStatusEnum];

/**
 * 
 * @export
 * @interface OrderItemSummary
 */
export interface OrderItemSummary {
    /**
     * 
     * @type {string}
     * @memberof OrderItemSummary
     */
    readonly productId?: string;
    /**
     * 
     * @type {string}
     * @memberof OrderItemSummary
     */
    readonly productTitle?: string;
    /**
     * 
     * @type {string}
     * @memberof OrderItemSummary
     */
    readonly productImages?: string;
    /**
     * 
     * @type {string}
     * @memberof OrderItemSummary
     */
    readonly variantId?: string;
    /**
     * 
     * @type {string}
     * @memberof OrderItemSummary
     */
    readonly variantName?: string;
    /**
     * 
     * @type {string}
     * @memberof OrderItemSummary
     */
    readonly attributes?: string;
    /**
     * 
     * @type {number}
     * @memberof OrderItemSummary
     */
    readonly quantity?: number;
    /**
     * 
     * @type {string}
     * @memberof OrderItemSummary
     */
    readonly unitPrice?: string;
    /**
     * 
     * @type {string}
     * @memberof OrderItemSummary
     */
    readonly totalPrice?: string;
}
/**
 * 
 * @export
 * @interface OrderList
 */
export interface OrderList {
    /**
     * 
     * @type {string}
     * @memberof OrderList
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof OrderList
     */
    status?: OrderListStatusEnum;
    /**
     * 
     * @type {string}
     * @memberof OrderList
     */
    paymentStatus?: OrderListPaymentStatusEnum;
    /**
     * 
     * @type {string}
     * @memberof OrderList
     */
    totalPrice: string;
    /**
     * 
     * @type {string}
     * @memberof OrderList
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof OrderList
     */
    readonly invoiceNumber?: string;
    /**
     * 
     * @type {Array<OrderItemSummary>}
     * @memberof OrderList
     */
    readonly items?: Array<OrderItemSummary>;
}


/**
 * @export
 */
export const OrderListStatusEnum = {
    Pending: 'pending',
    Confirmed: 'confirmed',
    Shipped: 'shipped',
    Delivered: 'delivered',
    Cancelled: 'cancelled'
} as const;
export type OrderListStatusEnum = typeof OrderListStatusEnum[keyof typeof OrderListStatusEnum];

/**
 * @export
 */
export const OrderListPaymentStatusEnum = {
    Pending: 'pending',
    Paid: 'paid',
    Failed: 'failed'
} as const;
export type OrderListPaymentStatusEnum = typeof OrderListPaymentStatusEnum[keyof typeof OrderListPaymentStatusEnum];

/**
 * 
 * @export
 * @interface PaginatedExploreProduct
 */
export interface PaginatedExploreProduct {
    /**
     * 
     * @type {string}
     * @memberof PaginatedExploreProduct
     */
    next: string | null;
    /**
     * 
     * @type {string}
     * @memberof PaginatedExploreProduct
     */
    previous: string | null;
    /**
     * 
     * @type {Array<Product>}
     * @memberof PaginatedExploreProduct
     */
    results: Array<Product>;
}
/**
 * 
 * @export
 * @interface PaginatedInstagramPostList
 */
export interface PaginatedInstagramPostList {
    /**
     * URL to the next page of results, or null.
     * @type {string}
     * @memberof PaginatedInstagramPostList
     */
    next: string | null;
    /**
     * URL to the previous page of results, or null.
     * @type {string}
     * @memberof PaginatedInstagramPostList
     */
    previous: string | null;
    /**
     * List of Instagram posts.
     * @type {Array<InstagramPostList>}
     * @memberof PaginatedInstagramPostList
     */
    results: Array<InstagramPostList>;
}
/**
 * 
 * @export
 * @interface PaginatedMessageList
 */
export interface PaginatedMessageList {
    /**
     * 
     * @type {string}
     * @memberof PaginatedMessageList
     */
    next: string | null;
    /**
     * 
     * @type {string}
     * @memberof PaginatedMessageList
     */
    previous: string | null;
    /**
     * 
     * @type {Array<MessageList>}
     * @memberof PaginatedMessageList
     */
    results: Array<MessageList>;
}
/**
 * 
 * @export
 * @interface PaginatedProductHomepage
 */
export interface PaginatedProductHomepage {
    /**
     * 
     * @type {string}
     * @memberof PaginatedProductHomepage
     */
    next: string | null;
    /**
     * 
     * @type {string}
     * @memberof PaginatedProductHomepage
     */
    previous: string | null;
    /**
     * 
     * @type {Array<ProductHomepage>}
     * @memberof PaginatedProductHomepage
     */
    results: Array<ProductHomepage>;
}
/**
 * 
 * @export
 * @interface PaginatedSimilarProduct
 */
export interface PaginatedSimilarProduct {
    /**
     * 
     * @type {string}
     * @memberof PaginatedSimilarProduct
     */
    next: string | null;
    /**
     * 
     * @type {string}
     * @memberof PaginatedSimilarProduct
     */
    previous: string | null;
    /**
     * 
     * @type {Array<SimilarProduct>}
     * @memberof PaginatedSimilarProduct
     */
    results: Array<SimilarProduct>;
}
/**
 * 
 * @export
 * @interface PaymentURLResponse
 */
export interface PaymentURLResponse {
    /**
     * 
     * @type {string}
     * @memberof PaymentURLResponse
     */
    paymentUrl: string;
}
/**
 * 
 * @export
 * @interface PayoutRequest
 */
export interface PayoutRequest {
    /**
     * 
     * @type {string}
     * @memberof PayoutRequest
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof PayoutRequest
     */
    amount: string;
    /**
     * 
     * @type {string}
     * @memberof PayoutRequest
     */
    status?: PayoutRequestStatusEnum;
    /**
     * 
     * @type {string}
     * @memberof PayoutRequest
     */
    readonly requestedAt?: string;
    /**
     * 
     * @type {string}
     * @memberof PayoutRequest
     */
    processedAt?: string | null;
    /**
     * 
     * @type {string}
     * @memberof PayoutRequest
     */
    shomareMarja?: string | null;
    /**
     * 
     * @type {string}
     * @memberof PayoutRequest
     */
    shomareErja?: string | null;
    /**
     * 
     * @type {string}
     * @memberof PayoutRequest
     */
    readonly bankAccountIban?: string;
    /**
     * 
     * @type {string}
     * @memberof PayoutRequest
     */
    readonly bankAccountCardNumber?: string;
}


/**
 * @export
 */
export const PayoutRequestStatusEnum = {
    Pending: 'pending',
    Completed: 'completed',
    Rejected: 'rejected'
} as const;
export type PayoutRequestStatusEnum = typeof PayoutRequestStatusEnum[keyof typeof PayoutRequestStatusEnum];

/**
 * 
 * @export
 * @interface PayoutRequestCreate
 */
export interface PayoutRequestCreate {
    /**
     * 
     * @type {string}
     * @memberof PayoutRequestCreate
     */
    bankAccount: string;
    /**
     * 
     * @type {string}
     * @memberof PayoutRequestCreate
     */
    amount: string;
}
/**
 * 
 * @export
 * @interface PreferenceUpsert
 */
export interface PreferenceUpsert {
    /**
     * 
     * @type {string}
     * @memberof PreferenceUpsert
     */
    typeCode: string;
    /**
     * 
     * @type {boolean}
     * @memberof PreferenceUpsert
     */
    allowSms: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof PreferenceUpsert
     */
    allowInApp: boolean;
}
/**
 * 
 * @export
 * @interface Product
 */
export interface Product {
    /**
     * 
     * @type {string}
     * @memberof Product
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof Product
     */
    seller: string;
    /**
     * 
     * @type {string}
     * @memberof Product
     */
    title: string;
    /**
     * 
     * @type {string}
     * @memberof Product
     */
    description: string;
    /**
     * 
     * @type {string}
     * @memberof Product
     */
    basePrice: string;
    /**
     * 
     * @type {number}
     * @memberof Product
     */
    readonly discountPrice?: number;
    /**
     * 
     * @type {number}
     * @memberof Product
     */
    readonly discountPercent?: number;
    /**
     * 
     * @type {Array<string>}
     * @memberof Product
     */
    imageUrls?: Array<string>;
    /**
     * 
     * @type {string}
     * @memberof Product
     */
    category?: string | null;
    /**
     *
     * @type {string}
     * @memberof Product
     */
    readonly sellerName?: string;
    /**
     *
     * @type {string}
     * @memberof Product
     */
    readonly sellerUsername?: string;
    /**
     *
     * @type {string}
     * @memberof Product
     */
    readonly sellerLogo?: string | null;
    /**
     *
     * @type {boolean}
     * @memberof Product
     */
    readonly isActive?: boolean;
    /**
     *
     * @type {boolean}
     * @memberof Product
     */
    readonly isOwner?: boolean;
    /**
     * 
     * @type {string}
     * @memberof Product
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof Product
     */
    readonly updatedAt?: string;
}
/**
 * 
 * @export
 * @interface ProductActivation
 */
export interface ProductActivation {
    /**
     * 
     * @type {string}
     * @memberof ProductActivation
     */
    id: string;
    /**
     * 
     * @type {boolean}
     * @memberof ProductActivation
     */
    isActive: boolean;
}
/**
 * 
 * @export
 * @interface ProductAttributeItem
 */
export interface ProductAttributeItem {
    /**
     * 
     * @type {string}
     * @memberof ProductAttributeItem
     */
    attribute: string;
    /**
     * 
     * @type {string}
     * @memberof ProductAttributeItem
     */
    value: string;
}
/**
 * 
 * @export
 * @interface ProductAttributeName
 */
export interface ProductAttributeName {
    /**
     * 
     * @type {string}
     * @memberof ProductAttributeName
     */
    attribute: string;
    /**
     * 
     * @type {string}
     * @memberof ProductAttributeName
     */
    value: string;
}
/**
 * 
 * @export
 * @interface ProductAttributeValue
 */
export interface ProductAttributeValue {
    /**
     * 
     * @type {string}
     * @memberof ProductAttributeValue
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof ProductAttributeValue
     */
    attribute: string;
    /**
     * 
     * @type {string}
     * @memberof ProductAttributeValue
     */
    readonly attributeName?: string;
    /**
     * 
     * @type {string}
     * @memberof ProductAttributeValue
     */
    value: string;
    /**
     * 
     * @type {AttributeValueInfo}
     * @memberof ProductAttributeValue
     */
    info: AttributeValueInfo;
}
/**
 * 
 * @export
 * @interface ProductCategory
 */
export interface ProductCategory {
    /**
     *
     * @type {string}
     * @memberof ProductCategory
     */
    readonly id?: string;
    /**
     *
     * @type {string}
     * @memberof ProductCategory
     */
    name: string;
    /**
     *
     * @type {string}
     * @memberof ProductCategory
     */
    description?: string | null;
    /**
     * UUID of this category's parent (null for top-level parents).
     * @type {string}
     * @memberof ProductCategory
     */
    readonly parentId?: string | null;
    /**
     * Human-readable name of the parent (null for top-level parents).
     * @type {string}
     * @memberof ProductCategory
     */
    readonly parentName?: string | null;
}
/**
 * 
 * @export
 * @interface ProductComment
 */
export interface ProductComment {
    /**
     * 
     * @type {string}
     * @memberof ProductComment
     */
    readonly id?: string;
    /**
     * 
     * @type {UserPublic}
     * @memberof ProductComment
     */
    user?: UserPublic;
    /**
     * 
     * @type {string}
     * @memberof ProductComment
     */
    product: string;
    /**
     * 
     * @type {string}
     * @memberof ProductComment
     */
    comment: string;
    /**
     * 
     * @type {string}
     * @memberof ProductComment
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof ProductComment
     */
    readonly updatedAt?: string;
    /**
     * 
     * @type {boolean}
     * @memberof ProductComment
     */
    readonly isVerifiedBuyer?: boolean;
    /**
     * 
     * @type {string}
     * @memberof ProductComment
     */
    parent?: string | null;
    /**
     * 
     * @type {string}
     * @memberof ProductComment
     */
    readonly userRating?: string;
    /**
     * 
     * @type {Array<ProductCommentReply>}
     * @memberof ProductComment
     */
    readonly replies?: Array<ProductCommentReply>;
}
/**
 * 
 * @export
 * @interface ProductCommentReply
 */
export interface ProductCommentReply {
    /**
     * 
     * @type {string}
     * @memberof ProductCommentReply
     */
    readonly id?: string;
    /**
     * 
     * @type {UserPublic}
     * @memberof ProductCommentReply
     */
    user?: UserPublic;
    /**
     * 
     * @type {string}
     * @memberof ProductCommentReply
     */
    readonly product?: string;
    /**
     * 
     * @type {string}
     * @memberof ProductCommentReply
     */
    readonly comment?: string;
    /**
     * 
     * @type {string}
     * @memberof ProductCommentReply
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof ProductCommentReply
     */
    readonly updatedAt?: string;
    /**
     * 
     * @type {boolean}
     * @memberof ProductCommentReply
     */
    readonly isVerifiedBuyer?: boolean;
    /**
     * 
     * @type {string}
     * @memberof ProductCommentReply
     */
    readonly parent?: string | null;
    /**
     * 
     * @type {string}
     * @memberof ProductCommentReply
     */
    readonly userRating?: string;
}
/**
 * 
 * @export
 * @interface ProductCreate
 */
export interface ProductCreate {
    /**
     * 
     * @type {string}
     * @memberof ProductCreate
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof ProductCreate
     */
    title: string;
    /**
     * 
     * @type {string}
     * @memberof ProductCreate
     */
    description: string;
    /**
     * 
     * @type {string}
     * @memberof ProductCreate
     */
    basePrice: string;
    /**
     * 
     * @type {Array<string>}
     * @memberof ProductCreate
     */
    imageUrls?: Array<string>;
    /**
     * 
     * @type {string}
     * @memberof ProductCreate
     */
    category?: string | null;
}
/**
 * 
 * @export
 * @interface ProductDetail
 */
export interface ProductDetail {
    /**
     * 
     * @type {string}
     * @memberof ProductDetail
     */
    readonly id?: string;
    /**
     * 
     * @type {SellerMinimal}
     * @memberof ProductDetail
     */
    seller?: SellerMinimal;
    /**
     * 
     * @type {string}
     * @memberof ProductDetail
     */
    title: string;
    /**
     * 
     * @type {string}
     * @memberof ProductDetail
     */
    description: string;
    /**
     * 
     * @type {string}
     * @memberof ProductDetail
     */
    basePrice: string;
    /**
     * List of image URLs for the product
     * @type {Array<string>}
     * @memberof ProductDetail
     */
    imageUrls?: Array<string>;
    /**
     * 
     * @type {string}
     * @memberof ProductDetail
     */
    category?: string | null;
    /**
     * 
     * @type {boolean}
     * @memberof ProductDetail
     */
    isActive?: boolean;
    /**
     * 
     * @type {string}
     * @memberof ProductDetail
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof ProductDetail
     */
    readonly updatedAt?: string;
    /**
     * 
     * @type {Array<ProductVariant>}
     * @memberof ProductDetail
     */
    readonly variants?: Array<ProductVariant>;
    /**
     * 
     * @type {{ [key: string]: Array<{ [key: string]: string; }>; }}
     * @memberof ProductDetail
     */
    readonly attributes?: { [key: string]: Array<{ [key: string]: string; }>; };
    /**
     * 
     * @type {string}
     * @memberof ProductDetail
     */
    readonly isOwner?: string;
    /**
     * 
     * @type {string}
     * @memberof ProductDetail
     */
    readonly averageRating?: string;
    /**
     *
     * @type {string}
     * @memberof ProductDetail
     */
    readonly rateCount?: string;
    /**
     * Seller-filled size guide (راهنمای سایز).
     * @type {SizeChart}
     * @memberof ProductDetail
     */
    sizeChart?: SizeChart | null;
}
/**
 * One row of a size chart — a size label plus measurement values aligned by
 * index to the chart's `columns`.
 * @export
 * @interface SizeChartRow
 */
export interface SizeChartRow {
    /**
     * Size label, e.g. "L" or "42".
     * @type {string}
     * @memberof SizeChartRow
     */
    label: string;
    /**
     * Measurement values, aligned by index to SizeChart.columns.
     * @type {Array<string>}
     * @memberof SizeChartRow
     */
    values: Array<string>;
}
/**
 * A seller-filled size guide. `columns` are measurement names (عرض سینه، قد،
 * plus any custom ones); each row aligns its `values` to those columns.
 * @export
 * @interface SizeChart
 */
export interface SizeChart {
    /**
     * Measurement unit, e.g. "cm".
     * @type {string}
     * @memberof SizeChart
     */
    unit?: string;
    /**
     * Ordered measurement column names.
     * @type {Array<string>}
     * @memberof SizeChart
     */
    columns: Array<string>;
    /**
     * Size rows.
     * @type {Array<SizeChartRow>}
     * @memberof SizeChart
     */
    rows: Array<SizeChartRow>;
}
/**
 *
 * @export
 * @interface ProductGenerationResponse
 */
export interface ProductGenerationResponse {
    /**
     * 
     * @type {GeneratedProduct}
     * @memberof ProductGenerationResponse
     */
    product: GeneratedProduct;
}
/**
 * 
 * @export
 * @interface ProductGroupedAttributes
 */
export interface ProductGroupedAttributes {
    /**
     * 
     * @type {Array<GroupedAttribute>}
     * @memberof ProductGroupedAttributes
     */
    readonly attributes?: Array<GroupedAttribute>;
}
/**
 * 
 * @export
 * @interface ProductHomepage
 */
export interface ProductHomepage {
    /**
     * 
     * @type {string}
     * @memberof ProductHomepage
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof ProductHomepage
     */
    title: string;
    /**
     * 
     * @type {Array<string>}
     * @memberof ProductHomepage
     */
    imageUrls?: Array<string>;
    /**
     * 
     * @type {number}
     * @memberof ProductHomepage
     */
    readonly basePrice?: number;
    /**
     * 
     * @type {number}
     * @memberof ProductHomepage
     */
    readonly minPrice?: number;
    /**
     * 
     * @type {number}
     * @memberof ProductHomepage
     */
    readonly maxPrice?: number;
    /**
     * 
     * @type {number}
     * @memberof ProductHomepage
     */
    readonly discountPrice?: number;
    /**
     * 
     * @type {number}
     * @memberof ProductHomepage
     */
    readonly discountPercent?: number;
    /**
     * 
     * @type {string}
     * @memberof ProductHomepage
     */
    readonly category?: string;
    /**
     * 
     * @type {string}
     * @memberof ProductHomepage
     */
    readonly sellerName?: string;
    /**
     *
     * @type {string}
     * @memberof ProductHomepage
     */
    readonly sellerUsername?: string;
    /**
     *
     * @type {string}
     * @memberof ProductHomepage
     */
    readonly sellerLogo?: string | null;
}
/**
 * 
 * @export
 * @interface ProductOwnershipCheck
 */
export interface ProductOwnershipCheck {
    /**
     * 
     * @type {boolean}
     * @memberof ProductOwnershipCheck
     */
    isOwner: boolean;
}
/**
 * 
 * @export
 * @interface ProductReview
 */
export interface ProductReview {
    /**
     * 
     * @type {string}
     * @memberof ProductReview
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof ProductReview
     */
    productId: string;
    /**
     * 
     * @type {number}
     * @memberof ProductReview
     */
    rating: number;
    /**
     * 
     * @type {boolean}
     * @memberof ProductReview
     */
    readonly isVerifiedBuyer?: boolean;
    /**
     * 
     * @type {string}
     * @memberof ProductReview
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof ProductReview
     */
    readonly updatedAt?: string;
}
/**
 * 
 * @export
 * @interface ProductReviewStats
 */
export interface ProductReviewStats {
    /**
     * 
     * @type {string}
     * @memberof ProductReviewStats
     */
    productId: string;
    /**
     * 
     * @type {number}
     * @memberof ProductReviewStats
     */
    averageRating: number;
    /**
     * 
     * @type {number}
     * @memberof ProductReviewStats
     */
    rateCount: number;
}
/**
 * 
 * @export
 * @interface ProductSearchResult
 */
export interface ProductSearchResult {
    /**
     * 
     * @type {string}
     * @memberof ProductSearchResult
     */
    id: string;
    /**
     * 
     * @type {string}
     * @memberof ProductSearchResult
     */
    title: string;
    /**
     * 
     * @type {number}
     * @memberof ProductSearchResult
     */
    price: number;
    /**
     * 
     * @type {number}
     * @memberof ProductSearchResult
     */
    minPrice?: number | null;
    /**
     * 
     * @type {number}
     * @memberof ProductSearchResult
     */
    maxPrice?: number | null;
    /**
     * 
     * @type {number}
     * @memberof ProductSearchResult
     */
    basePrice?: number | null;
    /**
     * 
     * @type {number}
     * @memberof ProductSearchResult
     */
    discountPrice?: number | null;
    /**
     * 
     * @type {number}
     * @memberof ProductSearchResult
     */
    discountPercent?: number | null;
    /**
     * 
     * @type {string}
     * @memberof ProductSearchResult
     */
    category: string;
    /**
     * 
     * @type {string}
     * @memberof ProductSearchResult
     */
    sellerName: string;
    /**
     * 
     * @type {Array<string>}
     * @memberof ProductSearchResult
     */
    imageUrls?: Array<string>;
}
/**
 * 
 * @export
 * @interface ProductTryOnRequestCreate
 */
export interface ProductTryOnRequestCreate {
    /**
     * UUID of the product the user wants to try on.
     * @type {string}
     * @memberof ProductTryOnRequestCreate
     */
    productId: string;
    /**
     * User body photo used for virtual try-on. Not stored in DB or media.
     * @type {string}
     * @memberof ProductTryOnRequestCreate
     */
    readonly image?: string;
}
/**
 * 
 * @export
 * @interface ProductVariant
 */
export interface ProductVariant {
    /**
     * 
     * @type {string}
     * @memberof ProductVariant
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof ProductVariant
     */
    readonly product?: string;
    /**
     * 
     * @type {string}
     * @memberof ProductVariant
     */
    variantName: string;
    /**
     * 
     * @type {number}
     * @memberof ProductVariant
     */
    stock?: number;
    /**
     * 
     * @type {string}
     * @memberof ProductVariant
     */
    price?: string | null;
    /**
     * 
     * @type {string}
     * @memberof ProductVariant
     */
    discountPrice?: string | null;
    /**
     * 
     * @type {{ [key: string]: string; }}
     * @memberof ProductVariant
     */
    attributes: { [key: string]: string; };
    /**
     * 
     * @type {{ [key: string]: string; }}
     * @memberof ProductVariant
     */
    readonly resolvedAttributes?: { [key: string]: string; };
    /**
     * 
     * @type {string}
     * @memberof ProductVariant
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof ProductVariant
     */
    readonly updatedAt?: string;
    /**
     * 
     * @type {string}
     * @memberof ProductVariant
     */
    readonly productTitle?: string;
    /**
     * 
     * @type {string}
     * @memberof ProductVariant
     */
    readonly productImage?: string;
}
/**
 * 
 * @export
 * @interface ProductVariantDetail
 */
export interface ProductVariantDetail {
    /**
     * 
     * @type {string}
     * @memberof ProductVariantDetail
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof ProductVariantDetail
     */
    variantName: string;
    /**
     * 
     * @type {string}
     * @memberof ProductVariantDetail
     */
    readonly formattedVariantName?: string;
    /**
     * 
     * @type {string}
     * @memberof ProductVariantDetail
     */
    price?: string | null;
    /**
     * 
     * @type {string}
     * @memberof ProductVariantDetail
     */
    readonly discountPrice?: string;
    /**
     * 
     * @type {number}
     * @memberof ProductVariantDetail
     */
    stock?: number;
    /**
     * 
     * @type {string}
     * @memberof ProductVariantDetail
     */
    readonly productTitle?: string;
    /**
     * 
     * @type {string}
     * @memberof ProductVariantDetail
     */
    readonly productImage?: string;
    /**
     * 
     * @type {CartAttributeValue}
     * @memberof ProductVariantDetail
     */
    color?: CartAttributeValue;
    /**
     * 
     * @type {CartAttributeValue}
     * @memberof ProductVariantDetail
     */
    size?: CartAttributeValue;
    /**
     * 
     * @type {string}
     * @memberof ProductVariantDetail
     */
    readonly resolvedAttributes?: string;
}
/**
 * 
 * @export
 * @interface PublicHomeBanner
 */
export interface PublicHomeBanner {
    /**
     * 
     * @type {number}
     * @memberof PublicHomeBanner
     */
    readonly id?: number;
    /**
     * 
     * @type {string}
     * @memberof PublicHomeBanner
     */
    title?: string;
    /**
     * 
     * @type {string}
     * @memberof PublicHomeBanner
     */
    linkType: PublicHomeBannerLinkTypeEnum;
    /**
     * 
     * @type {number}
     * @memberof PublicHomeBanner
     */
    linkId: number;
    /**
     * 
     * @type {string}
     * @memberof PublicHomeBanner
     */
    readonly imageUrl?: string;
    /**
     * 
     * @type {string}
     * @memberof PublicHomeBanner
     */
    startDate: string;
    /**
     * 
     * @type {string}
     * @memberof PublicHomeBanner
     */
    endDate: string;
}


/**
 * @export
 */
export const PublicHomeBannerLinkTypeEnum = {
    Product: 'product',
    Seller: 'seller',
    Deal: 'deal'
} as const;
export type PublicHomeBannerLinkTypeEnum = typeof PublicHomeBannerLinkTypeEnum[keyof typeof PublicHomeBannerLinkTypeEnum];

/**
 * 
 * @export
 * @interface PublicHomeSellerTile
 */
export interface PublicHomeSellerTile {
    /**
     * 
     * @type {string}
     * @memberof PublicHomeSellerTile
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof PublicHomeSellerTile
     */
    readonly sellerId?: string;
    /**
     * 
     * @type {string}
     * @memberof PublicHomeSellerTile
     */
    readonly sellerUsername?: string;
    /**
     * 
     * @type {string}
     * @memberof PublicHomeSellerTile
     */
    readonly sellerName?: string;
    /**
     * 
     * @type {string}
     * @memberof PublicHomeSellerTile
     */
    readonly imageUrl?: string;
    /**
     * Display order on homepage
     * @type {number}
     * @memberof PublicHomeSellerTile
     */
    order?: number;
}
/**
 * 
 * @export
 * @interface ResetPassword
 */
export interface ResetPassword {
    /**
     * 
     * @type {string}
     * @memberof ResetPassword
     */
    phoneNumber: string;
    /**
     * 
     * @type {string}
     * @memberof ResetPassword
     */
    otp: string;
    /**
     * 
     * @type {string}
     * @memberof ResetPassword
     */
    newPassword: string;
}
/**
 * 
 * @export
 * @interface ResetPasswordOTPSend
 */
export interface ResetPasswordOTPSend {
    /**
     * 
     * @type {string}
     * @memberof ResetPasswordOTPSend
     */
    phoneNumber: string;
}
/**
 * 
 * @export
 * @interface SearchResponse
 */
export interface SearchResponse {
    /**
     * 
     * @type {Array<ProductSearchResult>}
     * @memberof SearchResponse
     */
    products: Array<ProductSearchResult>;
    /**
     * 
     * @type {Array<SellerSearchResult>}
     * @memberof SearchResponse
     */
    sellers: Array<SellerSearchResult>;
    /**
     * Public collections matching the query.
     * @type {Array<CollectionSearchResult>}
     * @memberof SearchResponse
     */
    collections?: Array<CollectionSearchResult>;
}
/**
 * A collection result in search.
 * @export
 * @interface CollectionSearchResult
 */
export interface CollectionSearchResult {
    type?: string;
    id: string;
    title: string;
    coverImageUrl?: string | null;
    productCount?: number;
}
/**
 * 
 * @export
 * @interface Seller
 */
export interface Seller {
    /**
     * 
     * @type {string}
     * @memberof Seller
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof Seller
     */
    readonly scrapedPosts?: string;
    /**
     * 
     * @type {string}
     * @memberof Seller
     */
    readonly remainingScrapedPosts?: string;
    /**
     * 
     * @type {number}
     * @memberof Seller
     */
    readonly productReviewsCount?: number;
    /**
     * 
     * @type {string}
     * @memberof Seller
     */
    username: string;
    /**
     * 
     * @type {string}
     * @memberof Seller
     */
    storeName: string;
    /**
     * 
     * @type {string}
     * @memberof Seller
     */
    storeDescription?: string | null;
    /**
     * 
     * @type {string}
     * @memberof Seller
     */
    storeLogo?: string | null;
    /**
     * 
     * @type {string}
     * @memberof Seller
     */
    instagramId?: string | null;
    /**
     * 
     * @type {string}
     * @memberof Seller
     */
    status?: SellerStatusEnum;
    /**
     * 
     * @type {boolean}
     * @memberof Seller
     */
    isVerified?: boolean;
    /**
     * 
     * @type {number}
     * @memberof Seller
     */
    productCount?: number;
    /**
     * 
     * @type {number}
     * @memberof Seller
     */
    followerCount?: number;
    /**
     * 
     * @type {number}
     * @memberof Seller
     */
    reviewAverage?: number;
    /**
     * 
     * @type {string}
     * @memberof Seller
     */
    instaStatus?: SellerInstaStatusEnum;
    /**
     * Platform commission percentage for this seller (default 10%).
     * @type {string}
     * @memberof Seller
     */
    platformFee?: string;
    /**
     * 
     * @type {string}
     * @memberof Seller
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof Seller
     */
    readonly updatedAt?: string;
    /**
     * 
     * @type {string}
     * @memberof Seller
     */
    user: string;
    /**
     * 
     * @type {string}
     * @memberof Seller
     */
    category?: string | null;
    /**
     *
     * @type {number}
     * @memberof Seller
     */
    state?: number | null;
    /**
     *
     * @type {number}
     * @memberof Seller
     */
    city?: number | null;
    /**
     * Banner type: "color" or "image".
     * @type {string}
     * @memberof Seller
     */
    bannerType?: string | null;
    /**
     * Hex banner color when bannerType is "color".
     * @type {string}
     * @memberof Seller
     */
    bannerColor?: string | null;
    /**
     * Banner image/GIF URL when bannerType is "image".
     * @type {string}
     * @memberof Seller
     */
    bannerImage?: string | null;
}


/**
 * @export
 */
export const SellerStatusEnum = {
    Pending: 'pending',
    Approved: 'approved',
    Rejected: 'rejected'
} as const;
export type SellerStatusEnum = typeof SellerStatusEnum[keyof typeof SellerStatusEnum];

/**
 * @export
 */
export const SellerInstaStatusEnum = {
    NotAuthenticated: 'not_authenticated',
    Authenticated: 'authenticated'
} as const;
export type SellerInstaStatusEnum = typeof SellerInstaStatusEnum[keyof typeof SellerInstaStatusEnum];

/**
 * 
 * @export
 * @interface SellerApplication
 */
export interface SellerApplication {
    /**
     * 
     * @type {string}
     * @memberof SellerApplication
     */
    username: string;
    /**
     * 
     * @type {string}
     * @memberof SellerApplication
     */
    storeName: string;
    /**
     * 
     * @type {string}
     * @memberof SellerApplication
     */
    storeDescription?: string | null;
    /**
     * 
     * @type {string}
     * @memberof SellerApplication
     */
    storeLogo?: string | null;
    /**
     * 
     * @type {string}
     * @memberof SellerApplication
     */
    instagramId?: string | null;
    /**
     * 
     * @type {string}
     * @memberof SellerApplication
     */
    category?: string | null;
    /**
     * 
     * @type {number}
     * @memberof SellerApplication
     */
    state?: number | null;
    /**
     * 
     * @type {number}
     * @memberof SellerApplication
     */
    city?: number | null;
}
/**
 * 
 * @export
 * @interface SellerApplicationResponse
 */
export interface SellerApplicationResponse {
    /**
     * 
     * @type {string}
     * @memberof SellerApplicationResponse
     */
    sellerId: string;
    /**
     * 
     * @type {string}
     * @memberof SellerApplicationResponse
     */
    username: string;
    /**
     * 
     * @type {string}
     * @memberof SellerApplicationResponse
     */
    storeName: string;
    /**
     * 
     * @type {string}
     * @memberof SellerApplicationResponse
     */
    message?: string;
}
/**
 * 
 * @export
 * @interface SellerBalance
 */
export interface SellerBalance {
    /**
     * 
     * @type {string}
     * @memberof SellerBalance
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerBalance
     */
    availableFunds?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerBalance
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerBalance
     */
    readonly updatedAt?: string;
}
/**
 * 
 * @export
 * @interface SellerCategory
 */
export interface SellerCategory {
    /**
     * 
     * @type {string}
     * @memberof SellerCategory
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerCategory
     */
    name: string;
}
/**
 * 
 * @export
 * @interface SellerCollectionAddProducts
 */
export interface SellerCollectionAddProducts {
    /**
     * IDs of products to add (must belong to the seller).
     * @type {Array<string>}
     * @memberof SellerCollectionAddProducts
     */
    productIds: Array<string>;
    /**
     * 
     * @type {Array<string>}
     * @memberof SellerCollectionAddProducts
     */
    readonly added?: Array<string>;
    /**
     * 
     * @type {Array<string>}
     * @memberof SellerCollectionAddProducts
     */
    readonly skipped?: Array<string>;
    /**
     * 
     * @type {number}
     * @memberof SellerCollectionAddProducts
     */
    readonly productCount?: number;
}
/**
 * 
 * @export
 * @interface SellerCollectionCreate
 */
export interface SellerCollectionCreate {
    /**
     * 
     * @type {string}
     * @memberof SellerCollectionCreate
     */
    title: string;
    /**
     * 
     * @type {string}
     * @memberof SellerCollectionCreate
     */
    description?: string | null;
    /**
     * 
     * @type {string}
     * @memberof SellerCollectionCreate
     */
    coverImageUrl?: string | null;
    /**
     * 
     * @type {boolean}
     * @memberof SellerCollectionCreate
     */
    isPublic?: boolean;
    /**
     * 
     * @type {string}
     * @memberof SellerCollectionCreate
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerCollectionCreate
     */
    readonly creatorType?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerCollectionCreate
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerCollectionCreate
     */
    readonly updatedAt?: string;
}
/**
 * 
 * @export
 * @interface SellerCollectionUpdate
 */
export interface SellerCollectionUpdate {
    /**
     * 
     * @type {string}
     * @memberof SellerCollectionUpdate
     */
    title?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerCollectionUpdate
     */
    description?: string | null;
    /**
     * 
     * @type {string}
     * @memberof SellerCollectionUpdate
     */
    coverImageUrl?: string | null;
    /**
     * 
     * @type {boolean}
     * @memberof SellerCollectionUpdate
     */
    isPublic?: boolean;
    /**
     * 
     * @type {string}
     * @memberof SellerCollectionUpdate
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerCollectionUpdate
     */
    readonly creatorType?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerCollectionUpdate
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerCollectionUpdate
     */
    readonly updatedAt?: string;
}
/**
 * 
 * @export
 * @interface SellerCourierCreate
 */
export interface SellerCourierCreate {
    /**
     * 
     * @type {string}
     * @memberof SellerCourierCreate
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerCourierCreate
     */
    courierId: string;
    /**
     * 
     * @type {number}
     * @memberof SellerCourierCreate
     */
    deliveryPrice?: number | null;
    /**
     * 
     * @type {number}
     * @memberof SellerCourierCreate
     */
    estimatedDays?: number | null;
    /**
     * 
     * @type {boolean}
     * @memberof SellerCourierCreate
     */
    isEnabled?: boolean;
}
/**
 * 
 * @export
 * @interface SellerCourierDeleteResponse
 */
export interface SellerCourierDeleteResponse {
    /**
     * 
     * @type {string}
     * @memberof SellerCourierDeleteResponse
     */
    id: string;
    /**
     * 
     * @type {string}
     * @memberof SellerCourierDeleteResponse
     */
    message: string;
}
/**
 * 
 * @export
 * @interface SellerCourierList
 */
export interface SellerCourierList {
    /**
     * 
     * @type {string}
     * @memberof SellerCourierList
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerCourierList
     */
    seller: string;
    /**
     * 
     * @type {string}
     * @memberof SellerCourierList
     */
    courier: string;
    /**
     * 
     * @type {string}
     * @memberof SellerCourierList
     */
    readonly courierName?: string;
    /**
     * 
     * @type {boolean}
     * @memberof SellerCourierList
     */
    readonly courierIsFaceToFace?: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof SellerCourierList
     */
    readonly courierIsFreightCollect?: boolean;
    /**
     * 
     * @type {number}
     * @memberof SellerCourierList
     */
    deliveryPrice?: number | null;
    /**
     * 
     * @type {number}
     * @memberof SellerCourierList
     */
    estimatedDays?: number | null;
    /**
     * 
     * @type {boolean}
     * @memberof SellerCourierList
     */
    isEnabled?: boolean;
}
/**
 * 
 * @export
 * @interface SellerCourierUpdate
 */
export interface SellerCourierUpdate {
    /**
     * 
     * @type {number}
     * @memberof SellerCourierUpdate
     */
    deliveryPrice?: number | null;
    /**
     * 
     * @type {number}
     * @memberof SellerCourierUpdate
     */
    estimatedDays?: number | null;
    /**
     * 
     * @type {boolean}
     * @memberof SellerCourierUpdate
     */
    isEnabled?: boolean;
}
/**
 * 
 * @export
 * @interface SellerFinancialReport
 */
export interface SellerFinancialReport {
    /**
     * 
     * @type {number}
     * @memberof SellerFinancialReport
     */
    totalSales: number;
    /**
     * 
     * @type {number}
     * @memberof SellerFinancialReport
     */
    totalSettled: number;
    /**
     * 
     * @type {number}
     * @memberof SellerFinancialReport
     */
    pendingSettlement: number;
}
/**
 * 
 * @export
 * @interface SellerFollower
 */
export interface SellerFollower {
    /**
     * 
     * @type {string}
     * @memberof SellerFollower
     */
    userId: string;
    /**
     * 
     * @type {string}
     * @memberof SellerFollower
     */
    readonly createdAt?: string;
}
/**
 * 
 * @export
 * @interface SellerInfo
 */
export interface SellerInfo {
    /**
     * 
     * @type {string}
     * @memberof SellerInfo
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerInfo
     */
    username: string;
    /**
     * 
     * @type {string}
     * @memberof SellerInfo
     */
    readonly name?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerInfo
     */
    readonly logo?: string;
}
/**
 * 
 * @export
 * @interface SellerList
 */
export interface SellerList {
    /**
     * 
     * @type {string}
     * @memberof SellerList
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerList
     */
    username: string;
    /**
     * 
     * @type {string}
     * @memberof SellerList
     */
    storeName: string;
    /**
     * 
     * @type {string}
     * @memberof SellerList
     */
    storeDescription?: string | null;
    /**
     * 
     * @type {string}
     * @memberof SellerList
     */
    storeLogo?: string | null;
    /**
     * 
     * @type {string}
     * @memberof SellerList
     */
    instagramId?: string | null;
    /**
     * 
     * @type {string}
     * @memberof SellerList
     */
    readonly category?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerList
     */
    readonly state?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerList
     */
    readonly city?: string;
}
/**
 * 
 * @export
 * @interface SellerMini
 */
export interface SellerMini {
    /**
     * 
     * @type {string}
     * @memberof SellerMini
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerMini
     */
    readonly name?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerMini
     */
    readonly username?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerMini
     */
    readonly avatarUrl?: string | null;
}
/**
 * 
 * @export
 * @interface SellerMinimal
 */
export interface SellerMinimal {
    /**
     * 
     * @type {string}
     * @memberof SellerMinimal
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerMinimal
     */
    readonly username?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerMinimal
     */
    storeLogo?: string | null;
}
/**
 * 
 * @export
 * @interface SellerOrderList
 */
export interface SellerOrderList {
    /**
     * 
     * @type {string}
     * @memberof SellerOrderList
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerOrderList
     */
    readonly buyerName?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerOrderList
     */
    status?: SellerOrderListStatusEnum;
    /**
     * 
     * @type {string}
     * @memberof SellerOrderList
     */
    paymentStatus?: SellerOrderListPaymentStatusEnum;
    /**
     * 
     * @type {string}
     * @memberof SellerOrderList
     */
    totalPrice: string;
    /**
     * 
     * @type {string}
     * @memberof SellerOrderList
     */
    productTotalPrice: string;
    /**
     * 
     * @type {string}
     * @memberof SellerOrderList
     */
    shippingPrice: string;
    /**
     * 
     * @type {string}
     * @memberof SellerOrderList
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerOrderList
     */
    readonly invoiceNumber?: string;
    /**
     * 
     * @type {Array<string>}
     * @memberof SellerOrderList
     */
    readonly productNames?: Array<string>;
    /**
     * 
     * @type {ShippingInfo}
     * @memberof SellerOrderList
     */
    shippingInfo?: ShippingInfo;
}


/**
 * @export
 */
export const SellerOrderListStatusEnum = {
    Pending: 'pending',
    Confirmed: 'confirmed',
    Shipped: 'shipped',
    Delivered: 'delivered',
    Cancelled: 'cancelled'
} as const;
export type SellerOrderListStatusEnum = typeof SellerOrderListStatusEnum[keyof typeof SellerOrderListStatusEnum];

/**
 * @export
 */
export const SellerOrderListPaymentStatusEnum = {
    Pending: 'pending',
    Paid: 'paid',
    Failed: 'failed'
} as const;
export type SellerOrderListPaymentStatusEnum = typeof SellerOrderListPaymentStatusEnum[keyof typeof SellerOrderListPaymentStatusEnum];

/**
 * 
 * @export
 * @interface SellerOrderUpdate
 */
export interface SellerOrderUpdate {
    /**
     * 
     * @type {string}
     * @memberof SellerOrderUpdate
     */
    status?: SellerOrderUpdateStatusEnum;
    /**
     * 
     * @type {string}
     * @memberof SellerOrderUpdate
     */
    trackingCode?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerOrderUpdate
     */
    shippingStatus?: SellerOrderUpdateShippingStatusEnum;
    /**
     * 
     * @type {string}
     * @memberof SellerOrderUpdate
     */
    cancelReason?: SellerOrderUpdateCancelReasonEnum;
    /**
     * 
     * @type {string}
     * @memberof SellerOrderUpdate
     */
    cancelDescription?: string;
}


/**
 * @export
 */
export const SellerOrderUpdateStatusEnum = {
    Pending: 'pending',
    Confirmed: 'confirmed',
    Shipped: 'shipped',
    Delivered: 'delivered',
    Cancelled: 'cancelled'
} as const;
export type SellerOrderUpdateStatusEnum = typeof SellerOrderUpdateStatusEnum[keyof typeof SellerOrderUpdateStatusEnum];

/**
 * @export
 */
export const SellerOrderUpdateShippingStatusEnum = {
    Pending: 'pending',
    Shipped: 'shipped',
    InTransit: 'in_transit',
    Delivered: 'delivered',
    Failed: 'failed'
} as const;
export type SellerOrderUpdateShippingStatusEnum = typeof SellerOrderUpdateShippingStatusEnum[keyof typeof SellerOrderUpdateShippingStatusEnum];

/**
 * @export
 */
export const SellerOrderUpdateCancelReasonEnum = {
    OutOfStock: 'out_of_stock',
    OutOfServiceArea: 'out_of_service_area',
    Other: 'other'
} as const;
export type SellerOrderUpdateCancelReasonEnum = typeof SellerOrderUpdateCancelReasonEnum[keyof typeof SellerOrderUpdateCancelReasonEnum];

/**
 * 
 * @export
 * @interface SellerProductAttributeGroupOut
 */
export interface SellerProductAttributeGroupOut {
    /**
     * Attribute ID
     * @type {string}
     * @memberof SellerProductAttributeGroupOut
     */
    id: string;
    /**
     * Attribute name
     * @type {string}
     * @memberof SellerProductAttributeGroupOut
     */
    name: string;
    /**
     * 
     * @type {Array<SellerProductAttributeValueOut>}
     * @memberof SellerProductAttributeGroupOut
     */
    values: Array<SellerProductAttributeValueOut>;
}
/**
 * 
 * @export
 * @interface SellerProductAttributeValueOut
 */
export interface SellerProductAttributeValueOut {
    /**
     * 
     * @type {string}
     * @memberof SellerProductAttributeValueOut
     */
    id: string;
    /**
     * 
     * @type {string}
     * @memberof SellerProductAttributeValueOut
     */
    value: string;
    /**
     * 
     * @type {AttributeValueInfo}
     * @memberof SellerProductAttributeValueOut
     */
    info: AttributeValueInfo;
}
/**
 * 
 * @export
 * @interface SellerProductList200Response
 */
export interface SellerProductList200Response {
    /**
     * 
     * @type {number}
     * @memberof SellerProductList200Response
     */
    count?: number;
    /**
     * 
     * @type {string}
     * @memberof SellerProductList200Response
     */
    next?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerProductList200Response
     */
    previous?: string;
    /**
     * 
     * @type {Array<Product>}
     * @memberof SellerProductList200Response
     */
    results?: Array<Product>;
}
/**
 * 
 * @export
 * @interface SellerProductListItem
 */
export interface SellerProductListItem {
    /**
     * 
     * @type {string}
     * @memberof SellerProductListItem
     */
    readonly id?: string;
    /**
     * 
     * @type {SellerMinimal}
     * @memberof SellerProductListItem
     */
    seller?: SellerMinimal;
    /**
     * 
     * @type {string}
     * @memberof SellerProductListItem
     */
    readonly title?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerProductListItem
     */
    readonly description?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerProductListItem
     */
    readonly basePrice?: string;
    /**
     * 
     * @type {number}
     * @memberof SellerProductListItem
     */
    readonly discountPrice?: number;
    /**
     * 
     * @type {number}
     * @memberof SellerProductListItem
     */
    readonly discountPercent?: number;
    /**
     * 
     * @type {object}
     * @memberof SellerProductListItem
     */
    readonly imageUrls?: object;
    /**
     * First image URL if available
     * @type {string}
     * @memberof SellerProductListItem
     */
    readonly primaryImage?: string;
    /**
     * 
     * @type {ProductCategory}
     * @memberof SellerProductListItem
     */
    category?: ProductCategory;
    /**
     * 
     * @type {boolean}
     * @memberof SellerProductListItem
     */
    readonly isActive?: boolean;
    /**
     * 
     * @type {string}
     * @memberof SellerProductListItem
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerProductListItem
     */
    readonly updatedAt?: string;
    /**
     * 
     * @type {Array<SellerProductVariantList>}
     * @memberof SellerProductListItem
     */
    readonly variants?: Array<SellerProductVariantList>;
    /**
     * 
     * @type {Array<SellerProductAttributeGroupOut>}
     * @memberof SellerProductListItem
     */
    readonly attributes?: Array<SellerProductAttributeGroupOut>;
}
/**
 * 
 * @export
 * @interface SellerProductVariantList
 */
export interface SellerProductVariantList {
    /**
     * 
     * @type {string}
     * @memberof SellerProductVariantList
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerProductVariantList
     */
    variantName: string;
    /**
     * 
     * @type {number}
     * @memberof SellerProductVariantList
     */
    stock?: number;
    /**
     * 
     * @type {string}
     * @memberof SellerProductVariantList
     */
    price?: string | null;
    /**
     * 
     * @type {string}
     * @memberof SellerProductVariantList
     */
    discountPrice?: string | null;
    /**
     * 
     * @type {string}
     * @memberof SellerProductVariantList
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerProductVariantList
     */
    readonly updatedAt?: string;
    /**
     * 
     * @type {Array<SellerVariantAttributeKV>}
     * @memberof SellerProductVariantList
     */
    readonly attributes?: Array<SellerVariantAttributeKV>;
}
/**
 * 
 * @export
 * @interface SellerSearchResult
 */
export interface SellerSearchResult {
    /**
     * 
     * @type {string}
     * @memberof SellerSearchResult
     */
    type?: string;
    /**
     * 
     * @type {string}
     * @memberof SellerSearchResult
     */
    name: string;
    /**
     * 
     * @type {string}
     * @memberof SellerSearchResult
     */
    id: string;
    /**
     * Store logo URL (may be null).
     * @type {string}
     * @memberof SellerSearchResult
     */
    logo?: string | null;
}
/**
 * 
 * @export
 * @interface SellerStatusUpdate
 */
export interface SellerStatusUpdate {
    /**
     * 
     * @type {string}
     * @memberof SellerStatusUpdate
     */
    sellerId: string;
    /**
     * 
     * @type {string}
     * @memberof SellerStatusUpdate
     */
    status: SellerStatusUpdateStatusEnum;
}


/**
 * @export
 */
export const SellerStatusUpdateStatusEnum = {
    Approved: 'approved',
    Rejected: 'rejected'
} as const;
export type SellerStatusUpdateStatusEnum = typeof SellerStatusUpdateStatusEnum[keyof typeof SellerStatusUpdateStatusEnum];

/**
 * 
 * @export
 * @interface SellerUpdate
 */
export interface SellerUpdate {
    /**
     * 
     * @type {string}
     * @memberof SellerUpdate
     */
    storeName: string;
    /**
     * 
     * @type {string}
     * @memberof SellerUpdate
     */
    storeDescription?: string | null;
    /**
     * 
     * @type {string}
     * @memberof SellerUpdate
     */
    storeLogo?: string | null;
    /**
     *
     * @type {string}
     * @memberof SellerUpdate
     */
    instagramId?: string | null;
    /**
     * Banner type: "color" or "image".
     * @type {string}
     * @memberof SellerUpdate
     */
    bannerType?: string | null;
    /**
     * Hex banner color when bannerType is "color".
     * @type {string}
     * @memberof SellerUpdate
     */
    bannerColor?: string | null;
    /**
     * Banner image/GIF URL when bannerType is "image".
     * @type {string}
     * @memberof SellerUpdate
     */
    bannerImage?: string | null;
}
/**
 *
 * @export
 * @interface SellerVariantAttributeKV
 */
export interface SellerVariantAttributeKV {
    /**
     * 
     * @type {string}
     * @memberof SellerVariantAttributeKV
     */
    name: string;
    /**
     * 
     * @type {string}
     * @memberof SellerVariantAttributeKV
     */
    value: string;
    /**
     * 
     * @type {AttributeValueInfo}
     * @memberof SellerVariantAttributeKV
     */
    info: AttributeValueInfo;
}
/**
 * 
 * @export
 * @interface ServiceOTPRequest
 */
export interface ServiceOTPRequest {
    /**
     * 
     * @type {string}
     * @memberof ServiceOTPRequest
     */
    phoneNumber: string;
}
/**
 * 
 * @export
 * @interface ServiceOTPVerify
 */
export interface ServiceOTPVerify {
    /**
     * 
     * @type {string}
     * @memberof ServiceOTPVerify
     */
    phoneNumber: string;
    /**
     * 
     * @type {string}
     * @memberof ServiceOTPVerify
     */
    otp: string;
}
/**
 * 
 * @export
 * @interface ServiceOTPVerifyResponse
 */
export interface ServiceOTPVerifyResponse {
    /**
     * 
     * @type {string}
     * @memberof ServiceOTPVerifyResponse
     */
    message: string;
    /**
     * 
     * @type {string}
     * @memberof ServiceOTPVerifyResponse
     */
    accessToken: string;
    /**
     * 
     * @type {string}
     * @memberof ServiceOTPVerifyResponse
     */
    refreshToken: string;
}
/**
 * 
 * @export
 * @interface ServiceProduct
 */
export interface ServiceProduct {
    /**
     * 
     * @type {string}
     * @memberof ServiceProduct
     */
    readonly id?: string;
    /**
     * 
     * @type {ServiceSellerMinimal}
     * @memberof ServiceProduct
     */
    seller?: ServiceSellerMinimal;
    /**
     * 
     * @type {string}
     * @memberof ServiceProduct
     */
    readonly title?: string;
    /**
     * 
     * @type {string}
     * @memberof ServiceProduct
     */
    readonly description?: string;
    /**
     * 
     * @type {string}
     * @memberof ServiceProduct
     */
    readonly basePrice?: string;
    /**
     * 
     * @type {Array<string>}
     * @memberof ServiceProduct
     */
    imageUrls?: Array<string>;
    /**
     * 
     * @type {string}
     * @memberof ServiceProduct
     */
    readonly categoryId?: string | null;
    /**
     * 
     * @type {string}
     * @memberof ServiceProduct
     */
    readonly categoryName?: string | null;
    /**
     * 
     * @type {boolean}
     * @memberof ServiceProduct
     */
    readonly isActive?: boolean;
    /**
     * 
     * @type {string}
     * @memberof ServiceProduct
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof ServiceProduct
     */
    readonly updatedAt?: string;
    /**
     * 
     * @type {string}
     * @memberof ServiceProduct
     */
    readonly attributes?: string;
    /**
     * 
     * @type {Array<ServiceProductVariant>}
     * @memberof ServiceProduct
     */
    readonly variants?: Array<ServiceProductVariant>;
    /**
     * Cosine distance (lower = more similar).
     * @type {number}
     * @memberof ServiceProduct
     */
    distance?: number;
    /**
     * Public link to the product single page.
     * @type {string}
     * @memberof ServiceProduct
     */
    readonly permalink?: string;
}
/**
 * 
 * @export
 * @interface ServiceProductVariant
 */
export interface ServiceProductVariant {
    /**
     * 
     * @type {string}
     * @memberof ServiceProductVariant
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof ServiceProductVariant
     */
    readonly variantName?: string;
    /**
     * 
     * @type {number}
     * @memberof ServiceProductVariant
     */
    readonly stock?: number;
    /**
     * 
     * @type {string}
     * @memberof ServiceProductVariant
     */
    readonly price?: string | null;
    /**
     * 
     * @type {string}
     * @memberof ServiceProductVariant
     */
    readonly discountPrice?: string | null;
    /**
     * 
     * @type {string}
     * @memberof ServiceProductVariant
     */
    readonly finalPrice?: string;
    /**
     * 
     * @type {string}
     * @memberof ServiceProductVariant
     */
    readonly resolvedAttributes?: string;
    /**
     * 
     * @type {string}
     * @memberof ServiceProductVariant
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof ServiceProductVariant
     */
    readonly updatedAt?: string;
}
/**
 * 
 * @export
 * @interface ServiceSellerMinimal
 */
export interface ServiceSellerMinimal {
    /**
     * 
     * @type {string}
     * @memberof ServiceSellerMinimal
     */
    id: string;
    /**
     * 
     * @type {string}
     * @memberof ServiceSellerMinimal
     */
    username: string;
    /**
     * 
     * @type {string}
     * @memberof ServiceSellerMinimal
     */
    storeLogo?: string | null;
}
/**
 * 
 * @export
 * @interface ShippingAddressInfo
 */
export interface ShippingAddressInfo {
    /**
     * 
     * @type {string}
     * @memberof ShippingAddressInfo
     */
    title: string;
    /**
     * 
     * @type {string}
     * @memberof ShippingAddressInfo
     */
    receiverName: string;
    /**
     * 
     * @type {string}
     * @memberof ShippingAddressInfo
     */
    phoneNumber: string;
    /**
     * 
     * @type {string}
     * @memberof ShippingAddressInfo
     */
    mainAddress: string;
    /**
     * 
     * @type {string}
     * @memberof ShippingAddressInfo
     */
    entryReference: string;
    /**
     * 
     * @type {string}
     * @memberof ShippingAddressInfo
     */
    details: string;
    /**
     * 
     * @type {string}
     * @memberof ShippingAddressInfo
     */
    postalCode: string;
    /**
     * 
     * @type {number}
     * @memberof ShippingAddressInfo
     */
    latitude: number;
    /**
     * 
     * @type {number}
     * @memberof ShippingAddressInfo
     */
    longitude: number;
    /**
     * 
     * @type {boolean}
     * @memberof ShippingAddressInfo
     */
    isDefault: boolean;
}
/**
 * 
 * @export
 * @interface ShippingInfo
 */
export interface ShippingInfo {
    /**
     * 
     * @type {string}
     * @memberof ShippingInfo
     */
    status: string;
    /**
     * 
     * @type {string}
     * @memberof ShippingInfo
     */
    trackingCode: string | null;
    /**
     * 
     * @type {string}
     * @memberof ShippingInfo
     */
    trackingUrl: string | null;
    /**
     * 
     * @type {number}
     * @memberof ShippingInfo
     */
    estimatedDeliveryDays: number;
    /**
     * 
     * @type {string}
     * @memberof ShippingInfo
     */
    deliveredAt: string | null;
    /**
     * 
     * @type {ShippingAddressInfo}
     * @memberof ShippingInfo
     */
    address: ShippingAddressInfo | null;
}
/**
 * 
 * @export
 * @interface ShippingInfoCreate
 */
export interface ShippingInfoCreate {
    /**
     * 
     * @type {string}
     * @memberof ShippingInfoCreate
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof ShippingInfoCreate
     */
    address?: string | null;
    /**
     * 
     * @type {string}
     * @memberof ShippingInfoCreate
     */
    sellerCourier?: string | null;
    /**
     * 
     * @type {number}
     * @memberof ShippingInfoCreate
     */
    readonly estimatedDeliveryDays?: number;
}
/**
 * 
 * @export
 * @interface ShippingInfoDetail
 */
export interface ShippingInfoDetail {
    /**
     * 
     * @type {string}
     * @memberof ShippingInfoDetail
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof ShippingInfoDetail
     */
    readonly address?: string | null;
    /**
     * 
     * @type {string}
     * @memberof ShippingInfoDetail
     */
    readonly sellerCourier?: string | null;
    /**
     * 
     * @type {SellerCourierList}
     * @memberof ShippingInfoDetail
     */
    sellerCourierDetail?: SellerCourierList;
    /**
     * 
     * @type {string}
     * @memberof ShippingInfoDetail
     */
    readonly trackingCode?: string | null;
    /**
     * 
     * @type {string}
     * @memberof ShippingInfoDetail
     */
    readonly trackingUrl?: string | null;
    /**
     * 
     * @type {number}
     * @memberof ShippingInfoDetail
     */
    readonly estimatedDeliveryDays?: number;
    /**
     * 
     * @type {string}
     * @memberof ShippingInfoDetail
     */
    readonly deliveredAt?: string | null;
    /**
     * 
     * @type {string}
     * @memberof ShippingInfoDetail
     */
    readonly status?: ShippingInfoDetailStatusEnum;
    /**
     * 
     * @type {string}
     * @memberof ShippingInfoDetail
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof ShippingInfoDetail
     */
    readonly updatedAt?: string;
    /**
     * 
     * @type {string}
     * @memberof ShippingInfoDetail
     */
    readonly deliveryPrice?: string;
    /**
     * 
     * @type {string}
     * @memberof ShippingInfoDetail
     */
    readonly postalCode?: string;
    /**
     * 
     * @type {string}
     * @memberof ShippingInfoDetail
     */
    readonly mainAddress?: string;
    /**
     * 
     * @type {string}
     * @memberof ShippingInfoDetail
     */
    readonly receiverName?: string;
    /**
     * 
     * @type {string}
     * @memberof ShippingInfoDetail
     */
    readonly receiverPhone?: string;
    /**
     * 
     * @type {string}
     * @memberof ShippingInfoDetail
     */
    readonly entryReference?: string;
    /**
     * 
     * @type {string}
     * @memberof ShippingInfoDetail
     */
    readonly details?: string;
}


/**
 * @export
 */
export const ShippingInfoDetailStatusEnum = {
    Pending: 'pending',
    Shipped: 'shipped',
    InTransit: 'in_transit',
    Delivered: 'delivered',
    Failed: 'failed'
} as const;
export type ShippingInfoDetailStatusEnum = typeof ShippingInfoDetailStatusEnum[keyof typeof ShippingInfoDetailStatusEnum];

/**
 * 
 * @export
 * @interface ShippingInfoTrackingUpdate
 */
export interface ShippingInfoTrackingUpdate {
    /**
     * 
     * @type {string}
     * @memberof ShippingInfoTrackingUpdate
     */
    trackingCode?: string | null;
}
/**
 * 
 * @export
 * @interface SimilarCollectionListItem
 */
export interface SimilarCollectionListItem {
    /**
     * 
     * @type {string}
     * @memberof SimilarCollectionListItem
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof SimilarCollectionListItem
     */
    readonly title?: string;
    /**
     * 
     * @type {string}
     * @memberof SimilarCollectionListItem
     */
    readonly description?: string | null;
    /**
     * 
     * @type {string}
     * @memberof SimilarCollectionListItem
     */
    readonly coverImageUrl?: string | null;
    /**
     * 
     * @type {boolean}
     * @memberof SimilarCollectionListItem
     */
    readonly isPublic?: boolean;
    /**
     * 
     * @type {string}
     * @memberof SimilarCollectionListItem
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof SimilarCollectionListItem
     */
    readonly updatedAt?: string;
    /**
     * 
     * @type {number}
     * @memberof SimilarCollectionListItem
     */
    readonly productCount?: number;
}
/**
 * 
 * @export
 * @interface SimilarCollectionsCursorPage
 */
export interface SimilarCollectionsCursorPage {
    /**
     * 
     * @type {string}
     * @memberof SimilarCollectionsCursorPage
     */
    next: string | null;
    /**
     * 
     * @type {string}
     * @memberof SimilarCollectionsCursorPage
     */
    previous: string | null;
    /**
     * 
     * @type {Array<SimilarCollectionListItem>}
     * @memberof SimilarCollectionsCursorPage
     */
    results: Array<SimilarCollectionListItem>;
}
/**
 * 
 * @export
 * @interface SimilarProduct
 */
export interface SimilarProduct {
    /**
     * 
     * @type {string}
     * @memberof SimilarProduct
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof SimilarProduct
     */
    title: string;
    /**
     * 
     * @type {Array<string>}
     * @memberof SimilarProduct
     */
    imageUrls?: Array<string>;
    /**
     * 
     * @type {number}
     * @memberof SimilarProduct
     */
    readonly basePrice?: number;
    /**
     * 
     * @type {number}
     * @memberof SimilarProduct
     */
    readonly minPrice?: number;
    /**
     * 
     * @type {number}
     * @memberof SimilarProduct
     */
    readonly maxPrice?: number;
    /**
     * 
     * @type {number}
     * @memberof SimilarProduct
     */
    readonly discountPrice?: number;
    /**
     * 
     * @type {number}
     * @memberof SimilarProduct
     */
    readonly discountPercent?: number;
    /**
     * 
     * @type {string}
     * @memberof SimilarProduct
     */
    readonly category?: string;
    /**
     * 
     * @type {string}
     * @memberof SimilarProduct
     */
    readonly sellerName?: string;
}
/**
 * 
 * @export
 * @interface StateCity
 */
export interface StateCity {
    /**
     * 
     * @type {number}
     * @memberof StateCity
     */
    readonly id?: number;
    /**
     * 
     * @type {string}
     * @memberof StateCity
     */
    name: string;
    /**
     * 
     * @type {Array<City>}
     * @memberof StateCity
     */
    readonly cities?: Array<City>;
}
/**
 * 
 * @export
 * @interface ThreadCreate
 */
export interface ThreadCreate {
    /**
     * 
     * @type {string}
     * @memberof ThreadCreate
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof ThreadCreate
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof ThreadCreate
     */
    readonly updatedAt?: string;
    /**
     * UUID of the store (Seller.id) OR user (User.id) to start a chat with
     * @type {string}
     * @memberof ThreadCreate
     */
    participantId: string;
    /**
     * Optional product the chat is about; shared into the thread as a card
     * @type {string}
     * @memberof ThreadCreate
     */
    productId?: string | null;
}
/**
 * 
 * @export
 * @interface ThreadDetail
 */
export interface ThreadDetail {
    /**
     * 
     * @type {string}
     * @memberof ThreadDetail
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof ThreadDetail
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof ThreadDetail
     */
    readonly updatedAt?: string;
    /**
     * 
     * @type {Array<ThreadParticipant>}
     * @memberof ThreadDetail
     */
    readonly participants?: Array<ThreadParticipant>;
    /**
     * 
     * @type {LastMessage}
     * @memberof ThreadDetail
     */
    lastMessage?: LastMessage;
    /**
     * 
     * @type {boolean}
     * @memberof ThreadDetail
     */
    readonly isCreator?: boolean;
    /**
     * user_ids of the store's team (owner + active staff). Empty for peer-to-peer threads.
     * @type {Array<string>}
     * @memberof ThreadDetail
     */
    readonly teamUserIds?: Array<string>;
    /**
     * True when the viewer is on this thread's store team (owner/staff).
     * @type {boolean}
     * @memberof ThreadDetail
     */
    readonly viewerIsStore?: boolean;
}
/**
 *
 * @export
 * @interface ThreadLeaveResponse
 */
export interface ThreadLeaveResponse {
    /**
     * 
     * @type {string}
     * @memberof ThreadLeaveResponse
     */
    detail: string;
}
/**
 * 
 * @export
 * @interface ThreadList
 */
export interface ThreadList {
    /**
     * 
     * @type {string}
     * @memberof ThreadList
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof ThreadList
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof ThreadList
     */
    readonly updatedAt?: string;
    /**
     * 
     * @type {Array<ThreadParticipant>}
     * @memberof ThreadList
     */
    readonly participants?: Array<ThreadParticipant>;
    /**
     * 
     * @type {LastMessage}
     * @memberof ThreadList
     */
    lastMessage?: LastMessage;
    /**
     * 
     * @type {number}
     * @memberof ThreadList
     */
    readonly unreadCount?: number;
    /**
     * 
     * @type {string}
     * @memberof ThreadList
     */
    readonly lastMessageTime?: string | null;
    /**
     *
     * @type {boolean}
     * @memberof ThreadList
     */
    readonly isCreator?: boolean;
    /**
     * True if the last message in the thread was written by the store team
     * (owner or active staff). Used by the seller inbox to show
     * "you replied" vs "customer waiting".
     * @type {boolean}
     * @memberof ThreadList
     */
    readonly lastMessageFromTeam?: boolean;
    /**
     * True if the other party (the customer, from the seller side) has
     * already seen the last message.
     * @type {boolean}
     * @memberof ThreadList
     */
    readonly otherPartySeenLast?: boolean;
}
/**
 *
 * @export
 * @interface ThreadParticipant
 */
export interface ThreadParticipant {
    /**
     * 
     * @type {string}
     * @memberof ThreadParticipant
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof ThreadParticipant
     */
    readonly username?: string;
    /**
     * 
     * @type {string}
     * @memberof ThreadParticipant
     */
    readonly name?: string;
    /**
     * 
     * @type {string}
     * @memberof ThreadParticipant
     */
    readonly joinedAt?: string;
    /**
     * 
     * @type {string}
     * @memberof ThreadParticipant
     */
    lastReadAt?: string | null;
    /**
     * 
     * @type {string}
     * @memberof ThreadParticipant
     */
    readonly storeId?: string | null;
    /**
     * 
     * @type {string}
     * @memberof ThreadParticipant
     */
    readonly storeName?: string | null;
    /**
     * 
     * @type {string}
     * @memberof ThreadParticipant
     */
    readonly storeUsername?: string | null;
    /**
     * 
     * @type {string}
     * @memberof ThreadParticipant
     */
    readonly storeLogo?: string | null;
}
/**
 * 
 * @export
 * @interface TokenRefresh
 */
export interface TokenRefresh {
    /**
     * 
     * @type {string}
     * @memberof TokenRefresh
     */
    refresh: string;
    /**
     * 
     * @type {string}
     * @memberof TokenRefresh
     */
    readonly access?: string;
}
/**
 * 
 * @export
 * @interface TransactionCreate
 */
export interface TransactionCreate {
    /**
     * 
     * @type {string}
     * @memberof TransactionCreate
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof TransactionCreate
     */
    transactionType: TransactionCreateTransactionTypeEnum;
    /**
     * 
     * @type {string}
     * @memberof TransactionCreate
     */
    amount: string;
}


/**
 * @export
 */
export const TransactionCreateTransactionTypeEnum = {
    Deposit: 'deposit',
    Purchase: 'purchase'
} as const;
export type TransactionCreateTransactionTypeEnum = typeof TransactionCreateTransactionTypeEnum[keyof typeof TransactionCreateTransactionTypeEnum];

/**
 * 
 * @export
 * @interface TryOnRequestCreate
 */
export interface TryOnRequestCreate {
    /**
     * UUID of the collection the user wants to try on.
     * @type {string}
     * @memberof TryOnRequestCreate
     */
    collectionId: string;
    /**
     * User body photo used for virtual try-on. Not stored in DB or media.
     * @type {string}
     * @memberof TryOnRequestCreate
     */
    readonly image?: string;
}
/**
 * 
 * @export
 * @interface UserCollection
 */
export interface UserCollection {
    /**
     * 
     * @type {string}
     * @memberof UserCollection
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof UserCollection
     */
    title: string;
    /**
     * 
     * @type {string}
     * @memberof UserCollection
     */
    description?: string | null;
    /**
     * 
     * @type {boolean}
     * @memberof UserCollection
     */
    isPublic?: boolean;
    /**
     * 
     * @type {string}
     * @memberof UserCollection
     */
    coverImageUrl?: string | null;
    /**
     * 
     * @type {string}
     * @memberof UserCollection
     */
    readonly image?: string;
    /**
     * 
     * @type {Array<string>}
     * @memberof UserCollection
     */
    readonly products?: Array<string>;
    /**
     * 
     * @type {Array<object>}
     * @memberof UserCollection
     */
    readonly productsInfo?: Array<object>;
    /**
     * 
     * @type {object}
     * @memberof UserCollection
     */
    readonly tryonMetadata?: object;
    /**
     * List of product IDs in this collection.
     * @type {Array<string>}
     * @memberof UserCollection
     */
    productIds?: Array<string>;
    /**
     * 
     * @type {string}
     * @memberof UserCollection
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof UserCollection
     */
    readonly updatedAt?: string;
}
/**
 * 
 * @export
 * @interface UserCollectionAddProducts
 */
export interface UserCollectionAddProducts {
    /**
     * Product IDs to add to this collection.
     * @type {Array<string>}
     * @memberof UserCollectionAddProducts
     */
    productIds: Array<string>;
}
/**
 * 
 * @export
 * @interface UserProfile
 */
export interface UserProfile {
    /**
     * 
     * @type {string}
     * @memberof UserProfile
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof UserProfile
     */
    readonly phoneNumber?: string;
    /**
     * 
     * @type {string}
     * @memberof UserProfile
     */
    username?: string | null;
    /**
     * 
     * @type {string}
     * @memberof UserProfile
     */
    email?: string | null;
    /**
     * 
     * @type {string}
     * @memberof UserProfile
     */
    birthdate?: string | null;
    /**
     * 
     * @type {string}
     * @memberof UserProfile
     */
    sex?: UserProfileSexEnum;
    /**
     * 
     * @type {boolean}
     * @memberof UserProfile
     */
    readonly isActive?: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof UserProfile
     */
    readonly isSeller?: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof UserProfile
     */
    readonly isStaff?: boolean;
    /**
     *
     * @type {boolean}
     * @memberof UserProfile
     */
    readonly isSuperuser?: boolean;
    /**
     *
     * @type {boolean}
     * @memberof UserProfile
     */
    readonly otpVerified?: boolean;
    /**
     * 
     * @type {string}
     * @memberof UserProfile
     */
    readonly createdAt?: string;
    /**
     * 
     * @type {string}
     * @memberof UserProfile
     */
    readonly updatedAt?: string;
    /**
     * 
     * @type {string}
     * @memberof UserProfile
     */
    readonly sellerId?: string;
    /**
     * 
     * @type {string}
     * @memberof UserProfile
     */
    readonly isVerified?: string;
    /**
     * 
     * @type {string}
     * @memberof UserProfile
     */
    readonly sellerUsername?: string;
}


/**
 * @export
 */
export const UserProfileSexEnum = {
    Male: 'male',
    Female: 'female',
    Other: 'other'
} as const;
export type UserProfileSexEnum = typeof UserProfileSexEnum[keyof typeof UserProfileSexEnum];

/**
 * 
 * @export
 * @interface UserProfileUpdate
 */
export interface UserProfileUpdate {
    /**
     * 
     * @type {string}
     * @memberof UserProfileUpdate
     */
    username: string | null;
    /**
     * 
     * @type {string}
     * @memberof UserProfileUpdate
     */
    email?: string | null;
    /**
     * 
     * @type {string}
     * @memberof UserProfileUpdate
     */
    birthdate?: string | null;
    /**
     * 
     * @type {string}
     * @memberof UserProfileUpdate
     */
    sex?: UserProfileUpdateSexEnum;
    /**
     * 
     * @type {string}
     * @memberof UserProfileUpdate
     */
    password?: string | null;
}


/**
 * @export
 */
export const UserProfileUpdateSexEnum = {
    Male: 'male',
    Female: 'female',
    Other: 'other'
} as const;
export type UserProfileUpdateSexEnum = typeof UserProfileUpdateSexEnum[keyof typeof UserProfileUpdateSexEnum];

/**
 * 
 * @export
 * @interface UserPublic
 */
export interface UserPublic {
    /**
     * 
     * @type {string}
     * @memberof UserPublic
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof UserPublic
     */
    username?: string | null;
}
/**
 * 
 * @export
 * @interface Variant
 */
export interface Variant {
    /**
     * 
     * @type {string}
     * @memberof Variant
     */
    variantName: string;
    /**
     * 
     * @type {number}
     * @memberof Variant
     */
    stock: number;
    /**
     * 
     * @type {number}
     * @memberof Variant
     */
    price: number;
    /**
     * 
     * @type {{ [key: string]: string; }}
     * @memberof Variant
     */
    attributes: { [key: string]: string; };
}
/**
 * 
 * @export
 * @interface VariantStockUpdateRequest
 */
export interface VariantStockUpdateRequest {
    /**
     * 
     * @type {string}
     * @memberof VariantStockUpdateRequest
     */
    variantId: string;
    /**
     * New stock (>= 0)
     * @type {number}
     * @memberof VariantStockUpdateRequest
     */
    stock: number;
}
/**
 * 
 * @export
 * @interface VariantStockUpdateResponse
 */
export interface VariantStockUpdateResponse {
    /**
     * 
     * @type {string}
     * @memberof VariantStockUpdateResponse
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof VariantStockUpdateResponse
     */
    readonly product?: string;
    /**
     * 
     * @type {string}
     * @memberof VariantStockUpdateResponse
     */
    readonly variantName?: string;
    /**
     * 
     * @type {number}
     * @memberof VariantStockUpdateResponse
     */
    readonly stock?: number;
    /**
     *
     * @type {string}
     * @memberof VariantStockUpdateResponse
     */
    readonly updatedAt?: string;
}
/**
 *
 * @export
 * @interface ProductBasePriceUpdateRequest
 */
export interface ProductBasePriceUpdateRequest {
    /**
     *
     * @type {string}
     * @memberof ProductBasePriceUpdateRequest
     */
    productId: string;
    /**
     * New base price (>= 0)
     * @type {string}
     * @memberof ProductBasePriceUpdateRequest
     */
    basePrice: string;
}
/**
 *
 * @export
 * @interface ProductBasePriceUpdateResponse
 */
export interface ProductBasePriceUpdateResponse {
    /**
     *
     * @type {string}
     * @memberof ProductBasePriceUpdateResponse
     */
    readonly id?: string;
    /**
     *
     * @type {string}
     * @memberof ProductBasePriceUpdateResponse
     */
    readonly basePrice?: string;
    /**
     *
     * @type {string}
     * @memberof ProductBasePriceUpdateResponse
     */
    readonly updatedAt?: string;
}
/**
 *
 * @export
 * @interface VariantPriceUpdateRequest
 */
export interface VariantPriceUpdateRequest {
    /**
     *
     * @type {string}
     * @memberof VariantPriceUpdateRequest
     */
    variantId: string;
    /**
     * Per-variant price override (>= 0), or null to inherit base price
     * @type {string}
     * @memberof VariantPriceUpdateRequest
     */
    price: string | null;
}
/**
 *
 * @export
 * @interface VariantPriceUpdateResponse
 */
export interface VariantPriceUpdateResponse {
    /**
     *
     * @type {string}
     * @memberof VariantPriceUpdateResponse
     */
    readonly id?: string;
    /**
     *
     * @type {string}
     * @memberof VariantPriceUpdateResponse
     */
    readonly product?: string;
    /**
     *
     * @type {string}
     * @memberof VariantPriceUpdateResponse
     */
    readonly variantName?: string;
    /**
     *
     * @type {string}
     * @memberof VariantPriceUpdateResponse
     */
    readonly price?: string | null;
    /**
     *
     * @type {string}
     * @memberof VariantPriceUpdateResponse
     */
    readonly discountPrice?: string | null;
    /**
     *
     * @type {string}
     * @memberof VariantPriceUpdateResponse
     */
    readonly updatedAt?: string;
}
/**
 *
 * @export
 * @interface VectorSearchRequest
 */
export interface VectorSearchRequest {
    /**
     * Embedding vector; must be length matching Product.vector (e.g., 768).
     * @type {Array<number>}
     * @memberof VectorSearchRequest
     */
    vector: Array<number>;
    /**
     * 
     * @type {number}
     * @memberof VectorSearchRequest
     */
    topK?: number;
}
/**
 * 
 * @export
 * @interface Wallet
 */
export interface Wallet {
    /**
     * 
     * @type {string}
     * @memberof Wallet
     */
    readonly id?: string;
    /**
     * 
     * @type {string}
     * @memberof Wallet
     */
    readonly balance?: string;
    /**
     * 
     * @type {string}
     * @memberof Wallet
     */
    readonly lastUpdated?: string;
}
