import type * as runtime from "@prisma/client/runtime/client";
import type * as Prisma from "../internal/prismaNamespace";
/**
 * Model cart_cart_items
 * This model contains row level security and requires additional setup for migrations. Visit https://pris.ly/d/row-level-security for more info.
 */
export type cart_cart_itemsModel = runtime.Types.Result.DefaultSelection<Prisma.$cart_cart_itemsPayload>;
export type AggregateCart_cart_items = {
    _count: Cart_cart_itemsCountAggregateOutputType | null;
    _avg: Cart_cart_itemsAvgAggregateOutputType | null;
    _sum: Cart_cart_itemsSumAggregateOutputType | null;
    _min: Cart_cart_itemsMinAggregateOutputType | null;
    _max: Cart_cart_itemsMaxAggregateOutputType | null;
};
export type Cart_cart_itemsAvgAggregateOutputType = {
    id: number | null;
    cart_id: number | null;
    cart_items_id: number | null;
};
export type Cart_cart_itemsSumAggregateOutputType = {
    id: number | null;
    cart_id: number | null;
    cart_items_id: number | null;
};
export type Cart_cart_itemsMinAggregateOutputType = {
    id: number | null;
    cart_id: number | null;
    cart_items_id: number | null;
};
export type Cart_cart_itemsMaxAggregateOutputType = {
    id: number | null;
    cart_id: number | null;
    cart_items_id: number | null;
};
export type Cart_cart_itemsCountAggregateOutputType = {
    id: number;
    cart_id: number;
    cart_items_id: number;
    _all: number;
};
export type Cart_cart_itemsAvgAggregateInputType = {
    id?: true;
    cart_id?: true;
    cart_items_id?: true;
};
export type Cart_cart_itemsSumAggregateInputType = {
    id?: true;
    cart_id?: true;
    cart_items_id?: true;
};
export type Cart_cart_itemsMinAggregateInputType = {
    id?: true;
    cart_id?: true;
    cart_items_id?: true;
};
export type Cart_cart_itemsMaxAggregateInputType = {
    id?: true;
    cart_id?: true;
    cart_items_id?: true;
};
export type Cart_cart_itemsCountAggregateInputType = {
    id?: true;
    cart_id?: true;
    cart_items_id?: true;
    _all?: true;
};
export type Cart_cart_itemsAggregateArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    /**
     * Filter which cart_cart_items to aggregate.
     */
    where?: Prisma.cart_cart_itemsWhereInput;
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     *
     * Determine the order of cart_cart_items to fetch.
     */
    orderBy?: Prisma.cart_cart_itemsOrderByWithRelationInput | Prisma.cart_cart_itemsOrderByWithRelationInput[];
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     *
     * Sets the start position
     */
    cursor?: Prisma.cart_cart_itemsWhereUniqueInput;
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     *
     * Take `±n` cart_cart_items from the position of the cursor.
     */
    take?: number;
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     *
     * Skip the first `n` cart_cart_items.
     */
    skip?: number;
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     *
     * Count returned cart_cart_items
    **/
    _count?: true | Cart_cart_itemsCountAggregateInputType;
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     *
     * Select which fields to average
    **/
    _avg?: Cart_cart_itemsAvgAggregateInputType;
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     *
     * Select which fields to sum
    **/
    _sum?: Cart_cart_itemsSumAggregateInputType;
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     *
     * Select which fields to find the minimum value
    **/
    _min?: Cart_cart_itemsMinAggregateInputType;
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     *
     * Select which fields to find the maximum value
    **/
    _max?: Cart_cart_itemsMaxAggregateInputType;
};
export type GetCart_cart_itemsAggregateType<T extends Cart_cart_itemsAggregateArgs> = {
    [P in keyof T & keyof AggregateCart_cart_items]: P extends '_count' | 'count' ? T[P] extends true ? number : Prisma.GetScalarType<T[P], AggregateCart_cart_items[P]> : Prisma.GetScalarType<T[P], AggregateCart_cart_items[P]>;
};
export type cart_cart_itemsGroupByArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    where?: Prisma.cart_cart_itemsWhereInput;
    orderBy?: Prisma.cart_cart_itemsOrderByWithAggregationInput | Prisma.cart_cart_itemsOrderByWithAggregationInput[];
    by: Prisma.Cart_cart_itemsScalarFieldEnum[] | Prisma.Cart_cart_itemsScalarFieldEnum;
    having?: Prisma.cart_cart_itemsScalarWhereWithAggregatesInput;
    take?: number;
    skip?: number;
    _count?: Cart_cart_itemsCountAggregateInputType | true;
    _avg?: Cart_cart_itemsAvgAggregateInputType;
    _sum?: Cart_cart_itemsSumAggregateInputType;
    _min?: Cart_cart_itemsMinAggregateInputType;
    _max?: Cart_cart_itemsMaxAggregateInputType;
};
export type Cart_cart_itemsGroupByOutputType = {
    id: number;
    cart_id: number | null;
    cart_items_id: number | null;
    _count: Cart_cart_itemsCountAggregateOutputType | null;
    _avg: Cart_cart_itemsAvgAggregateOutputType | null;
    _sum: Cart_cart_itemsSumAggregateOutputType | null;
    _min: Cart_cart_itemsMinAggregateOutputType | null;
    _max: Cart_cart_itemsMaxAggregateOutputType | null;
};
type GetCart_cart_itemsGroupByPayload<T extends cart_cart_itemsGroupByArgs> = Prisma.PrismaPromise<Array<Prisma.PickEnumerable<Cart_cart_itemsGroupByOutputType, T['by']> & {
    [P in ((keyof T) & (keyof Cart_cart_itemsGroupByOutputType))]: P extends '_count' ? T[P] extends boolean ? number : Prisma.GetScalarType<T[P], Cart_cart_itemsGroupByOutputType[P]> : Prisma.GetScalarType<T[P], Cart_cart_itemsGroupByOutputType[P]>;
}>>;
export type cart_cart_itemsWhereInput = {
    AND?: Prisma.cart_cart_itemsWhereInput | Prisma.cart_cart_itemsWhereInput[];
    OR?: Prisma.cart_cart_itemsWhereInput[];
    NOT?: Prisma.cart_cart_itemsWhereInput | Prisma.cart_cart_itemsWhereInput[];
    id?: Prisma.IntFilter<"cart_cart_items"> | number;
    cart_id?: Prisma.IntNullableFilter<"cart_cart_items"> | number | null;
    cart_items_id?: Prisma.IntNullableFilter<"cart_cart_items"> | number | null;
    cart?: Prisma.XOR<Prisma.CartNullableScalarRelationFilter, Prisma.cartWhereInput> | null;
    cart_items?: Prisma.XOR<Prisma.Cart_itemsNullableScalarRelationFilter, Prisma.cart_itemsWhereInput> | null;
};
export type cart_cart_itemsOrderByWithRelationInput = {
    id?: Prisma.SortOrder;
    cart_id?: Prisma.SortOrderInput | Prisma.SortOrder;
    cart_items_id?: Prisma.SortOrderInput | Prisma.SortOrder;
    cart?: Prisma.cartOrderByWithRelationInput;
    cart_items?: Prisma.cart_itemsOrderByWithRelationInput;
};
export type cart_cart_itemsWhereUniqueInput = Prisma.AtLeast<{
    id?: number;
    AND?: Prisma.cart_cart_itemsWhereInput | Prisma.cart_cart_itemsWhereInput[];
    OR?: Prisma.cart_cart_itemsWhereInput[];
    NOT?: Prisma.cart_cart_itemsWhereInput | Prisma.cart_cart_itemsWhereInput[];
    cart_id?: Prisma.IntNullableFilter<"cart_cart_items"> | number | null;
    cart_items_id?: Prisma.IntNullableFilter<"cart_cart_items"> | number | null;
    cart?: Prisma.XOR<Prisma.CartNullableScalarRelationFilter, Prisma.cartWhereInput> | null;
    cart_items?: Prisma.XOR<Prisma.Cart_itemsNullableScalarRelationFilter, Prisma.cart_itemsWhereInput> | null;
}, "id">;
export type cart_cart_itemsOrderByWithAggregationInput = {
    id?: Prisma.SortOrder;
    cart_id?: Prisma.SortOrderInput | Prisma.SortOrder;
    cart_items_id?: Prisma.SortOrderInput | Prisma.SortOrder;
    _count?: Prisma.cart_cart_itemsCountOrderByAggregateInput;
    _avg?: Prisma.cart_cart_itemsAvgOrderByAggregateInput;
    _max?: Prisma.cart_cart_itemsMaxOrderByAggregateInput;
    _min?: Prisma.cart_cart_itemsMinOrderByAggregateInput;
    _sum?: Prisma.cart_cart_itemsSumOrderByAggregateInput;
};
export type cart_cart_itemsScalarWhereWithAggregatesInput = {
    AND?: Prisma.cart_cart_itemsScalarWhereWithAggregatesInput | Prisma.cart_cart_itemsScalarWhereWithAggregatesInput[];
    OR?: Prisma.cart_cart_itemsScalarWhereWithAggregatesInput[];
    NOT?: Prisma.cart_cart_itemsScalarWhereWithAggregatesInput | Prisma.cart_cart_itemsScalarWhereWithAggregatesInput[];
    id?: Prisma.IntWithAggregatesFilter<"cart_cart_items"> | number;
    cart_id?: Prisma.IntNullableWithAggregatesFilter<"cart_cart_items"> | number | null;
    cart_items_id?: Prisma.IntNullableWithAggregatesFilter<"cart_cart_items"> | number | null;
};
export type cart_cart_itemsCreateInput = {
    cart?: Prisma.cartCreateNestedOneWithoutCart_cart_itemsInput;
    cart_items?: Prisma.cart_itemsCreateNestedOneWithoutCart_cart_itemsInput;
};
export type cart_cart_itemsUncheckedCreateInput = {
    id?: number;
    cart_id?: number | null;
    cart_items_id?: number | null;
};
export type cart_cart_itemsUpdateInput = {
    cart?: Prisma.cartUpdateOneWithoutCart_cart_itemsNestedInput;
    cart_items?: Prisma.cart_itemsUpdateOneWithoutCart_cart_itemsNestedInput;
};
export type cart_cart_itemsUncheckedUpdateInput = {
    id?: Prisma.IntFieldUpdateOperationsInput | number;
    cart_id?: Prisma.NullableIntFieldUpdateOperationsInput | number | null;
    cart_items_id?: Prisma.NullableIntFieldUpdateOperationsInput | number | null;
};
export type cart_cart_itemsCreateManyInput = {
    id?: number;
    cart_id?: number | null;
    cart_items_id?: number | null;
};
export type cart_cart_itemsUpdateManyMutationInput = {};
export type cart_cart_itemsUncheckedUpdateManyInput = {
    id?: Prisma.IntFieldUpdateOperationsInput | number;
    cart_id?: Prisma.NullableIntFieldUpdateOperationsInput | number | null;
    cart_items_id?: Prisma.NullableIntFieldUpdateOperationsInput | number | null;
};
export type Cart_cart_itemsListRelationFilter = {
    every?: Prisma.cart_cart_itemsWhereInput;
    some?: Prisma.cart_cart_itemsWhereInput;
    none?: Prisma.cart_cart_itemsWhereInput;
};
export type cart_cart_itemsOrderByRelationAggregateInput = {
    _count?: Prisma.SortOrder;
};
export type cart_cart_itemsCountOrderByAggregateInput = {
    id?: Prisma.SortOrder;
    cart_id?: Prisma.SortOrder;
    cart_items_id?: Prisma.SortOrder;
};
export type cart_cart_itemsAvgOrderByAggregateInput = {
    id?: Prisma.SortOrder;
    cart_id?: Prisma.SortOrder;
    cart_items_id?: Prisma.SortOrder;
};
export type cart_cart_itemsMaxOrderByAggregateInput = {
    id?: Prisma.SortOrder;
    cart_id?: Prisma.SortOrder;
    cart_items_id?: Prisma.SortOrder;
};
export type cart_cart_itemsMinOrderByAggregateInput = {
    id?: Prisma.SortOrder;
    cart_id?: Prisma.SortOrder;
    cart_items_id?: Prisma.SortOrder;
};
export type cart_cart_itemsSumOrderByAggregateInput = {
    id?: Prisma.SortOrder;
    cart_id?: Prisma.SortOrder;
    cart_items_id?: Prisma.SortOrder;
};
export type cart_cart_itemsCreateNestedManyWithoutCartInput = {
    create?: Prisma.XOR<Prisma.cart_cart_itemsCreateWithoutCartInput, Prisma.cart_cart_itemsUncheckedCreateWithoutCartInput> | Prisma.cart_cart_itemsCreateWithoutCartInput[] | Prisma.cart_cart_itemsUncheckedCreateWithoutCartInput[];
    connectOrCreate?: Prisma.cart_cart_itemsCreateOrConnectWithoutCartInput | Prisma.cart_cart_itemsCreateOrConnectWithoutCartInput[];
    createMany?: Prisma.cart_cart_itemsCreateManyCartInputEnvelope;
    connect?: Prisma.cart_cart_itemsWhereUniqueInput | Prisma.cart_cart_itemsWhereUniqueInput[];
};
export type cart_cart_itemsUncheckedCreateNestedManyWithoutCartInput = {
    create?: Prisma.XOR<Prisma.cart_cart_itemsCreateWithoutCartInput, Prisma.cart_cart_itemsUncheckedCreateWithoutCartInput> | Prisma.cart_cart_itemsCreateWithoutCartInput[] | Prisma.cart_cart_itemsUncheckedCreateWithoutCartInput[];
    connectOrCreate?: Prisma.cart_cart_itemsCreateOrConnectWithoutCartInput | Prisma.cart_cart_itemsCreateOrConnectWithoutCartInput[];
    createMany?: Prisma.cart_cart_itemsCreateManyCartInputEnvelope;
    connect?: Prisma.cart_cart_itemsWhereUniqueInput | Prisma.cart_cart_itemsWhereUniqueInput[];
};
export type cart_cart_itemsUpdateManyWithoutCartNestedInput = {
    create?: Prisma.XOR<Prisma.cart_cart_itemsCreateWithoutCartInput, Prisma.cart_cart_itemsUncheckedCreateWithoutCartInput> | Prisma.cart_cart_itemsCreateWithoutCartInput[] | Prisma.cart_cart_itemsUncheckedCreateWithoutCartInput[];
    connectOrCreate?: Prisma.cart_cart_itemsCreateOrConnectWithoutCartInput | Prisma.cart_cart_itemsCreateOrConnectWithoutCartInput[];
    upsert?: Prisma.cart_cart_itemsUpsertWithWhereUniqueWithoutCartInput | Prisma.cart_cart_itemsUpsertWithWhereUniqueWithoutCartInput[];
    createMany?: Prisma.cart_cart_itemsCreateManyCartInputEnvelope;
    set?: Prisma.cart_cart_itemsWhereUniqueInput | Prisma.cart_cart_itemsWhereUniqueInput[];
    disconnect?: Prisma.cart_cart_itemsWhereUniqueInput | Prisma.cart_cart_itemsWhereUniqueInput[];
    delete?: Prisma.cart_cart_itemsWhereUniqueInput | Prisma.cart_cart_itemsWhereUniqueInput[];
    connect?: Prisma.cart_cart_itemsWhereUniqueInput | Prisma.cart_cart_itemsWhereUniqueInput[];
    update?: Prisma.cart_cart_itemsUpdateWithWhereUniqueWithoutCartInput | Prisma.cart_cart_itemsUpdateWithWhereUniqueWithoutCartInput[];
    updateMany?: Prisma.cart_cart_itemsUpdateManyWithWhereWithoutCartInput | Prisma.cart_cart_itemsUpdateManyWithWhereWithoutCartInput[];
    deleteMany?: Prisma.cart_cart_itemsScalarWhereInput | Prisma.cart_cart_itemsScalarWhereInput[];
};
export type cart_cart_itemsUncheckedUpdateManyWithoutCartNestedInput = {
    create?: Prisma.XOR<Prisma.cart_cart_itemsCreateWithoutCartInput, Prisma.cart_cart_itemsUncheckedCreateWithoutCartInput> | Prisma.cart_cart_itemsCreateWithoutCartInput[] | Prisma.cart_cart_itemsUncheckedCreateWithoutCartInput[];
    connectOrCreate?: Prisma.cart_cart_itemsCreateOrConnectWithoutCartInput | Prisma.cart_cart_itemsCreateOrConnectWithoutCartInput[];
    upsert?: Prisma.cart_cart_itemsUpsertWithWhereUniqueWithoutCartInput | Prisma.cart_cart_itemsUpsertWithWhereUniqueWithoutCartInput[];
    createMany?: Prisma.cart_cart_itemsCreateManyCartInputEnvelope;
    set?: Prisma.cart_cart_itemsWhereUniqueInput | Prisma.cart_cart_itemsWhereUniqueInput[];
    disconnect?: Prisma.cart_cart_itemsWhereUniqueInput | Prisma.cart_cart_itemsWhereUniqueInput[];
    delete?: Prisma.cart_cart_itemsWhereUniqueInput | Prisma.cart_cart_itemsWhereUniqueInput[];
    connect?: Prisma.cart_cart_itemsWhereUniqueInput | Prisma.cart_cart_itemsWhereUniqueInput[];
    update?: Prisma.cart_cart_itemsUpdateWithWhereUniqueWithoutCartInput | Prisma.cart_cart_itemsUpdateWithWhereUniqueWithoutCartInput[];
    updateMany?: Prisma.cart_cart_itemsUpdateManyWithWhereWithoutCartInput | Prisma.cart_cart_itemsUpdateManyWithWhereWithoutCartInput[];
    deleteMany?: Prisma.cart_cart_itemsScalarWhereInput | Prisma.cart_cart_itemsScalarWhereInput[];
};
export type cart_cart_itemsCreateNestedManyWithoutCart_itemsInput = {
    create?: Prisma.XOR<Prisma.cart_cart_itemsCreateWithoutCart_itemsInput, Prisma.cart_cart_itemsUncheckedCreateWithoutCart_itemsInput> | Prisma.cart_cart_itemsCreateWithoutCart_itemsInput[] | Prisma.cart_cart_itemsUncheckedCreateWithoutCart_itemsInput[];
    connectOrCreate?: Prisma.cart_cart_itemsCreateOrConnectWithoutCart_itemsInput | Prisma.cart_cart_itemsCreateOrConnectWithoutCart_itemsInput[];
    createMany?: Prisma.cart_cart_itemsCreateManyCart_itemsInputEnvelope;
    connect?: Prisma.cart_cart_itemsWhereUniqueInput | Prisma.cart_cart_itemsWhereUniqueInput[];
};
export type cart_cart_itemsUncheckedCreateNestedManyWithoutCart_itemsInput = {
    create?: Prisma.XOR<Prisma.cart_cart_itemsCreateWithoutCart_itemsInput, Prisma.cart_cart_itemsUncheckedCreateWithoutCart_itemsInput> | Prisma.cart_cart_itemsCreateWithoutCart_itemsInput[] | Prisma.cart_cart_itemsUncheckedCreateWithoutCart_itemsInput[];
    connectOrCreate?: Prisma.cart_cart_itemsCreateOrConnectWithoutCart_itemsInput | Prisma.cart_cart_itemsCreateOrConnectWithoutCart_itemsInput[];
    createMany?: Prisma.cart_cart_itemsCreateManyCart_itemsInputEnvelope;
    connect?: Prisma.cart_cart_itemsWhereUniqueInput | Prisma.cart_cart_itemsWhereUniqueInput[];
};
export type cart_cart_itemsUpdateManyWithoutCart_itemsNestedInput = {
    create?: Prisma.XOR<Prisma.cart_cart_itemsCreateWithoutCart_itemsInput, Prisma.cart_cart_itemsUncheckedCreateWithoutCart_itemsInput> | Prisma.cart_cart_itemsCreateWithoutCart_itemsInput[] | Prisma.cart_cart_itemsUncheckedCreateWithoutCart_itemsInput[];
    connectOrCreate?: Prisma.cart_cart_itemsCreateOrConnectWithoutCart_itemsInput | Prisma.cart_cart_itemsCreateOrConnectWithoutCart_itemsInput[];
    upsert?: Prisma.cart_cart_itemsUpsertWithWhereUniqueWithoutCart_itemsInput | Prisma.cart_cart_itemsUpsertWithWhereUniqueWithoutCart_itemsInput[];
    createMany?: Prisma.cart_cart_itemsCreateManyCart_itemsInputEnvelope;
    set?: Prisma.cart_cart_itemsWhereUniqueInput | Prisma.cart_cart_itemsWhereUniqueInput[];
    disconnect?: Prisma.cart_cart_itemsWhereUniqueInput | Prisma.cart_cart_itemsWhereUniqueInput[];
    delete?: Prisma.cart_cart_itemsWhereUniqueInput | Prisma.cart_cart_itemsWhereUniqueInput[];
    connect?: Prisma.cart_cart_itemsWhereUniqueInput | Prisma.cart_cart_itemsWhereUniqueInput[];
    update?: Prisma.cart_cart_itemsUpdateWithWhereUniqueWithoutCart_itemsInput | Prisma.cart_cart_itemsUpdateWithWhereUniqueWithoutCart_itemsInput[];
    updateMany?: Prisma.cart_cart_itemsUpdateManyWithWhereWithoutCart_itemsInput | Prisma.cart_cart_itemsUpdateManyWithWhereWithoutCart_itemsInput[];
    deleteMany?: Prisma.cart_cart_itemsScalarWhereInput | Prisma.cart_cart_itemsScalarWhereInput[];
};
export type cart_cart_itemsUncheckedUpdateManyWithoutCart_itemsNestedInput = {
    create?: Prisma.XOR<Prisma.cart_cart_itemsCreateWithoutCart_itemsInput, Prisma.cart_cart_itemsUncheckedCreateWithoutCart_itemsInput> | Prisma.cart_cart_itemsCreateWithoutCart_itemsInput[] | Prisma.cart_cart_itemsUncheckedCreateWithoutCart_itemsInput[];
    connectOrCreate?: Prisma.cart_cart_itemsCreateOrConnectWithoutCart_itemsInput | Prisma.cart_cart_itemsCreateOrConnectWithoutCart_itemsInput[];
    upsert?: Prisma.cart_cart_itemsUpsertWithWhereUniqueWithoutCart_itemsInput | Prisma.cart_cart_itemsUpsertWithWhereUniqueWithoutCart_itemsInput[];
    createMany?: Prisma.cart_cart_itemsCreateManyCart_itemsInputEnvelope;
    set?: Prisma.cart_cart_itemsWhereUniqueInput | Prisma.cart_cart_itemsWhereUniqueInput[];
    disconnect?: Prisma.cart_cart_itemsWhereUniqueInput | Prisma.cart_cart_itemsWhereUniqueInput[];
    delete?: Prisma.cart_cart_itemsWhereUniqueInput | Prisma.cart_cart_itemsWhereUniqueInput[];
    connect?: Prisma.cart_cart_itemsWhereUniqueInput | Prisma.cart_cart_itemsWhereUniqueInput[];
    update?: Prisma.cart_cart_itemsUpdateWithWhereUniqueWithoutCart_itemsInput | Prisma.cart_cart_itemsUpdateWithWhereUniqueWithoutCart_itemsInput[];
    updateMany?: Prisma.cart_cart_itemsUpdateManyWithWhereWithoutCart_itemsInput | Prisma.cart_cart_itemsUpdateManyWithWhereWithoutCart_itemsInput[];
    deleteMany?: Prisma.cart_cart_itemsScalarWhereInput | Prisma.cart_cart_itemsScalarWhereInput[];
};
export type cart_cart_itemsCreateWithoutCartInput = {
    cart_items?: Prisma.cart_itemsCreateNestedOneWithoutCart_cart_itemsInput;
};
export type cart_cart_itemsUncheckedCreateWithoutCartInput = {
    id?: number;
    cart_items_id?: number | null;
};
export type cart_cart_itemsCreateOrConnectWithoutCartInput = {
    where: Prisma.cart_cart_itemsWhereUniqueInput;
    create: Prisma.XOR<Prisma.cart_cart_itemsCreateWithoutCartInput, Prisma.cart_cart_itemsUncheckedCreateWithoutCartInput>;
};
export type cart_cart_itemsCreateManyCartInputEnvelope = {
    data: Prisma.cart_cart_itemsCreateManyCartInput | Prisma.cart_cart_itemsCreateManyCartInput[];
    skipDuplicates?: boolean;
};
export type cart_cart_itemsUpsertWithWhereUniqueWithoutCartInput = {
    where: Prisma.cart_cart_itemsWhereUniqueInput;
    update: Prisma.XOR<Prisma.cart_cart_itemsUpdateWithoutCartInput, Prisma.cart_cart_itemsUncheckedUpdateWithoutCartInput>;
    create: Prisma.XOR<Prisma.cart_cart_itemsCreateWithoutCartInput, Prisma.cart_cart_itemsUncheckedCreateWithoutCartInput>;
};
export type cart_cart_itemsUpdateWithWhereUniqueWithoutCartInput = {
    where: Prisma.cart_cart_itemsWhereUniqueInput;
    data: Prisma.XOR<Prisma.cart_cart_itemsUpdateWithoutCartInput, Prisma.cart_cart_itemsUncheckedUpdateWithoutCartInput>;
};
export type cart_cart_itemsUpdateManyWithWhereWithoutCartInput = {
    where: Prisma.cart_cart_itemsScalarWhereInput;
    data: Prisma.XOR<Prisma.cart_cart_itemsUpdateManyMutationInput, Prisma.cart_cart_itemsUncheckedUpdateManyWithoutCartInput>;
};
export type cart_cart_itemsScalarWhereInput = {
    AND?: Prisma.cart_cart_itemsScalarWhereInput | Prisma.cart_cart_itemsScalarWhereInput[];
    OR?: Prisma.cart_cart_itemsScalarWhereInput[];
    NOT?: Prisma.cart_cart_itemsScalarWhereInput | Prisma.cart_cart_itemsScalarWhereInput[];
    id?: Prisma.IntFilter<"cart_cart_items"> | number;
    cart_id?: Prisma.IntNullableFilter<"cart_cart_items"> | number | null;
    cart_items_id?: Prisma.IntNullableFilter<"cart_cart_items"> | number | null;
};
export type cart_cart_itemsCreateWithoutCart_itemsInput = {
    cart?: Prisma.cartCreateNestedOneWithoutCart_cart_itemsInput;
};
export type cart_cart_itemsUncheckedCreateWithoutCart_itemsInput = {
    id?: number;
    cart_id?: number | null;
};
export type cart_cart_itemsCreateOrConnectWithoutCart_itemsInput = {
    where: Prisma.cart_cart_itemsWhereUniqueInput;
    create: Prisma.XOR<Prisma.cart_cart_itemsCreateWithoutCart_itemsInput, Prisma.cart_cart_itemsUncheckedCreateWithoutCart_itemsInput>;
};
export type cart_cart_itemsCreateManyCart_itemsInputEnvelope = {
    data: Prisma.cart_cart_itemsCreateManyCart_itemsInput | Prisma.cart_cart_itemsCreateManyCart_itemsInput[];
    skipDuplicates?: boolean;
};
export type cart_cart_itemsUpsertWithWhereUniqueWithoutCart_itemsInput = {
    where: Prisma.cart_cart_itemsWhereUniqueInput;
    update: Prisma.XOR<Prisma.cart_cart_itemsUpdateWithoutCart_itemsInput, Prisma.cart_cart_itemsUncheckedUpdateWithoutCart_itemsInput>;
    create: Prisma.XOR<Prisma.cart_cart_itemsCreateWithoutCart_itemsInput, Prisma.cart_cart_itemsUncheckedCreateWithoutCart_itemsInput>;
};
export type cart_cart_itemsUpdateWithWhereUniqueWithoutCart_itemsInput = {
    where: Prisma.cart_cart_itemsWhereUniqueInput;
    data: Prisma.XOR<Prisma.cart_cart_itemsUpdateWithoutCart_itemsInput, Prisma.cart_cart_itemsUncheckedUpdateWithoutCart_itemsInput>;
};
export type cart_cart_itemsUpdateManyWithWhereWithoutCart_itemsInput = {
    where: Prisma.cart_cart_itemsScalarWhereInput;
    data: Prisma.XOR<Prisma.cart_cart_itemsUpdateManyMutationInput, Prisma.cart_cart_itemsUncheckedUpdateManyWithoutCart_itemsInput>;
};
export type cart_cart_itemsCreateManyCartInput = {
    id?: number;
    cart_items_id?: number | null;
};
export type cart_cart_itemsUpdateWithoutCartInput = {
    cart_items?: Prisma.cart_itemsUpdateOneWithoutCart_cart_itemsNestedInput;
};
export type cart_cart_itemsUncheckedUpdateWithoutCartInput = {
    id?: Prisma.IntFieldUpdateOperationsInput | number;
    cart_items_id?: Prisma.NullableIntFieldUpdateOperationsInput | number | null;
};
export type cart_cart_itemsUncheckedUpdateManyWithoutCartInput = {
    id?: Prisma.IntFieldUpdateOperationsInput | number;
    cart_items_id?: Prisma.NullableIntFieldUpdateOperationsInput | number | null;
};
export type cart_cart_itemsCreateManyCart_itemsInput = {
    id?: number;
    cart_id?: number | null;
};
export type cart_cart_itemsUpdateWithoutCart_itemsInput = {
    cart?: Prisma.cartUpdateOneWithoutCart_cart_itemsNestedInput;
};
export type cart_cart_itemsUncheckedUpdateWithoutCart_itemsInput = {
    id?: Prisma.IntFieldUpdateOperationsInput | number;
    cart_id?: Prisma.NullableIntFieldUpdateOperationsInput | number | null;
};
export type cart_cart_itemsUncheckedUpdateManyWithoutCart_itemsInput = {
    id?: Prisma.IntFieldUpdateOperationsInput | number;
    cart_id?: Prisma.NullableIntFieldUpdateOperationsInput | number | null;
};
export type cart_cart_itemsSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
    id?: boolean;
    cart_id?: boolean;
    cart_items_id?: boolean;
    cart?: boolean | Prisma.cart_cart_items$cartArgs<ExtArgs>;
    cart_items?: boolean | Prisma.cart_cart_items$cart_itemsArgs<ExtArgs>;
}, ExtArgs["result"]["cart_cart_items"]>;
export type cart_cart_itemsSelectCreateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
    id?: boolean;
    cart_id?: boolean;
    cart_items_id?: boolean;
    cart?: boolean | Prisma.cart_cart_items$cartArgs<ExtArgs>;
    cart_items?: boolean | Prisma.cart_cart_items$cart_itemsArgs<ExtArgs>;
}, ExtArgs["result"]["cart_cart_items"]>;
export type cart_cart_itemsSelectUpdateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
    id?: boolean;
    cart_id?: boolean;
    cart_items_id?: boolean;
    cart?: boolean | Prisma.cart_cart_items$cartArgs<ExtArgs>;
    cart_items?: boolean | Prisma.cart_cart_items$cart_itemsArgs<ExtArgs>;
}, ExtArgs["result"]["cart_cart_items"]>;
export type cart_cart_itemsSelectScalar = {
    id?: boolean;
    cart_id?: boolean;
    cart_items_id?: boolean;
};
export type cart_cart_itemsOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "cart_id" | "cart_items_id", ExtArgs["result"]["cart_cart_items"]>;
export type cart_cart_itemsInclude<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    cart?: boolean | Prisma.cart_cart_items$cartArgs<ExtArgs>;
    cart_items?: boolean | Prisma.cart_cart_items$cart_itemsArgs<ExtArgs>;
};
export type cart_cart_itemsIncludeCreateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    cart?: boolean | Prisma.cart_cart_items$cartArgs<ExtArgs>;
    cart_items?: boolean | Prisma.cart_cart_items$cart_itemsArgs<ExtArgs>;
};
export type cart_cart_itemsIncludeUpdateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    cart?: boolean | Prisma.cart_cart_items$cartArgs<ExtArgs>;
    cart_items?: boolean | Prisma.cart_cart_items$cart_itemsArgs<ExtArgs>;
};
export type $cart_cart_itemsPayload<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    name: "cart_cart_items";
    objects: {
        cart: Prisma.$cartPayload<ExtArgs> | null;
        cart_items: Prisma.$cart_itemsPayload<ExtArgs> | null;
    };
    scalars: runtime.Types.Extensions.GetPayloadResult<{
        id: number;
        cart_id: number | null;
        cart_items_id: number | null;
    }, ExtArgs["result"]["cart_cart_items"]>;
    composites: {};
};
export type cart_cart_itemsGetPayload<S extends boolean | null | undefined | cart_cart_itemsDefaultArgs> = runtime.Types.Result.GetResult<Prisma.$cart_cart_itemsPayload, S>;
export type cart_cart_itemsCountArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = Omit<cart_cart_itemsFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
    select?: Cart_cart_itemsCountAggregateInputType | true;
};
export interface cart_cart_itemsDelegate<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: {
        types: Prisma.TypeMap<ExtArgs>['model']['cart_cart_items'];
        meta: {
            name: 'cart_cart_items';
        };
    };
    /**
     * Find zero or one Cart_cart_items that matches the filter.
     * @param {cart_cart_itemsFindUniqueArgs} args - Arguments to find a Cart_cart_items
     * @example
     * // Get one Cart_cart_items
     * const cart_cart_items = await prisma.cart_cart_items.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends cart_cart_itemsFindUniqueArgs>(args: Prisma.SelectSubset<T, cart_cart_itemsFindUniqueArgs<ExtArgs>>): Prisma.Prisma__cart_cart_itemsClient<runtime.Types.Result.GetResult<Prisma.$cart_cart_itemsPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>;
    /**
     * Find one Cart_cart_items that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {cart_cart_itemsFindUniqueOrThrowArgs} args - Arguments to find a Cart_cart_items
     * @example
     * // Get one Cart_cart_items
     * const cart_cart_items = await prisma.cart_cart_items.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends cart_cart_itemsFindUniqueOrThrowArgs>(args: Prisma.SelectSubset<T, cart_cart_itemsFindUniqueOrThrowArgs<ExtArgs>>): Prisma.Prisma__cart_cart_itemsClient<runtime.Types.Result.GetResult<Prisma.$cart_cart_itemsPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>;
    /**
     * Find the first Cart_cart_items that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {cart_cart_itemsFindFirstArgs} args - Arguments to find a Cart_cart_items
     * @example
     * // Get one Cart_cart_items
     * const cart_cart_items = await prisma.cart_cart_items.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends cart_cart_itemsFindFirstArgs>(args?: Prisma.SelectSubset<T, cart_cart_itemsFindFirstArgs<ExtArgs>>): Prisma.Prisma__cart_cart_itemsClient<runtime.Types.Result.GetResult<Prisma.$cart_cart_itemsPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>;
    /**
     * Find the first Cart_cart_items that matches the filter or
     * throw `PrismaKnownClientError` with `P2025` code if no matches were found.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {cart_cart_itemsFindFirstOrThrowArgs} args - Arguments to find a Cart_cart_items
     * @example
     * // Get one Cart_cart_items
     * const cart_cart_items = await prisma.cart_cart_items.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends cart_cart_itemsFindFirstOrThrowArgs>(args?: Prisma.SelectSubset<T, cart_cart_itemsFindFirstOrThrowArgs<ExtArgs>>): Prisma.Prisma__cart_cart_itemsClient<runtime.Types.Result.GetResult<Prisma.$cart_cart_itemsPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>;
    /**
     * Find zero or more Cart_cart_items that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {cart_cart_itemsFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Cart_cart_items
     * const cart_cart_items = await prisma.cart_cart_items.findMany()
     *
     * // Get first 10 Cart_cart_items
     * const cart_cart_items = await prisma.cart_cart_items.findMany({ take: 10 })
     *
     * // Only select the `id`
     * const cart_cart_itemsWithIdOnly = await prisma.cart_cart_items.findMany({ select: { id: true } })
     *
     */
    findMany<T extends cart_cart_itemsFindManyArgs>(args?: Prisma.SelectSubset<T, cart_cart_itemsFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$cart_cart_itemsPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>;
    /**
     * Create a Cart_cart_items.
     * @param {cart_cart_itemsCreateArgs} args - Arguments to create a Cart_cart_items.
     * @example
     * // Create one Cart_cart_items
     * const Cart_cart_items = await prisma.cart_cart_items.create({
     *   data: {
     *     // ... data to create a Cart_cart_items
     *   }
     * })
     *
     */
    create<T extends cart_cart_itemsCreateArgs>(args: Prisma.SelectSubset<T, cart_cart_itemsCreateArgs<ExtArgs>>): Prisma.Prisma__cart_cart_itemsClient<runtime.Types.Result.GetResult<Prisma.$cart_cart_itemsPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>;
    /**
     * Create many Cart_cart_items.
     * @param {cart_cart_itemsCreateManyArgs} args - Arguments to create many Cart_cart_items.
     * @example
     * // Create many Cart_cart_items
     * const cart_cart_items = await prisma.cart_cart_items.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *
     */
    createMany<T extends cart_cart_itemsCreateManyArgs>(args?: Prisma.SelectSubset<T, cart_cart_itemsCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<Prisma.BatchPayload>;
    /**
     * Create many Cart_cart_items and returns the data saved in the database.
     * @param {cart_cart_itemsCreateManyAndReturnArgs} args - Arguments to create many Cart_cart_items.
     * @example
     * // Create many Cart_cart_items
     * const cart_cart_items = await prisma.cart_cart_items.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *
     * // Create many Cart_cart_items and only return the `id`
     * const cart_cart_itemsWithIdOnly = await prisma.cart_cart_items.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     *
     */
    createManyAndReturn<T extends cart_cart_itemsCreateManyAndReturnArgs>(args?: Prisma.SelectSubset<T, cart_cart_itemsCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$cart_cart_itemsPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>;
    /**
     * Delete a Cart_cart_items.
     * @param {cart_cart_itemsDeleteArgs} args - Arguments to delete one Cart_cart_items.
     * @example
     * // Delete one Cart_cart_items
     * const Cart_cart_items = await prisma.cart_cart_items.delete({
     *   where: {
     *     // ... filter to delete one Cart_cart_items
     *   }
     * })
     *
     */
    delete<T extends cart_cart_itemsDeleteArgs>(args: Prisma.SelectSubset<T, cart_cart_itemsDeleteArgs<ExtArgs>>): Prisma.Prisma__cart_cart_itemsClient<runtime.Types.Result.GetResult<Prisma.$cart_cart_itemsPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>;
    /**
     * Update one Cart_cart_items.
     * @param {cart_cart_itemsUpdateArgs} args - Arguments to update one Cart_cart_items.
     * @example
     * // Update one Cart_cart_items
     * const cart_cart_items = await prisma.cart_cart_items.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     *
     */
    update<T extends cart_cart_itemsUpdateArgs>(args: Prisma.SelectSubset<T, cart_cart_itemsUpdateArgs<ExtArgs>>): Prisma.Prisma__cart_cart_itemsClient<runtime.Types.Result.GetResult<Prisma.$cart_cart_itemsPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>;
    /**
     * Delete zero or more Cart_cart_items.
     * @param {cart_cart_itemsDeleteManyArgs} args - Arguments to filter Cart_cart_items to delete.
     * @example
     * // Delete a few Cart_cart_items
     * const { count } = await prisma.cart_cart_items.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     *
     */
    deleteMany<T extends cart_cart_itemsDeleteManyArgs>(args?: Prisma.SelectSubset<T, cart_cart_itemsDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<Prisma.BatchPayload>;
    /**
     * Update zero or more Cart_cart_items.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {cart_cart_itemsUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many Cart_cart_items
     * const cart_cart_items = await prisma.cart_cart_items.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     *
     */
    updateMany<T extends cart_cart_itemsUpdateManyArgs>(args: Prisma.SelectSubset<T, cart_cart_itemsUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<Prisma.BatchPayload>;
    /**
     * Update zero or more Cart_cart_items and returns the data updated in the database.
     * @param {cart_cart_itemsUpdateManyAndReturnArgs} args - Arguments to update many Cart_cart_items.
     * @example
     * // Update many Cart_cart_items
     * const cart_cart_items = await prisma.cart_cart_items.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *
     * // Update zero or more Cart_cart_items and only return the `id`
     * const cart_cart_itemsWithIdOnly = await prisma.cart_cart_items.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     *
     */
    updateManyAndReturn<T extends cart_cart_itemsUpdateManyAndReturnArgs>(args: Prisma.SelectSubset<T, cart_cart_itemsUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$cart_cart_itemsPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>;
    /**
     * Create or update one Cart_cart_items.
     * @param {cart_cart_itemsUpsertArgs} args - Arguments to update or create a Cart_cart_items.
     * @example
     * // Update or create a Cart_cart_items
     * const cart_cart_items = await prisma.cart_cart_items.upsert({
     *   create: {
     *     // ... data to create a Cart_cart_items
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the Cart_cart_items we want to update
     *   }
     * })
     */
    upsert<T extends cart_cart_itemsUpsertArgs>(args: Prisma.SelectSubset<T, cart_cart_itemsUpsertArgs<ExtArgs>>): Prisma.Prisma__cart_cart_itemsClient<runtime.Types.Result.GetResult<Prisma.$cart_cart_itemsPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>;
    /**
     * Count the number of Cart_cart_items.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {cart_cart_itemsCountArgs} args - Arguments to filter Cart_cart_items to count.
     * @example
     * // Count the number of Cart_cart_items
     * const count = await prisma.cart_cart_items.count({
     *   where: {
     *     // ... the filter for the Cart_cart_items we want to count
     *   }
     * })
    **/
    count<T extends cart_cart_itemsCountArgs>(args?: Prisma.Subset<T, cart_cart_itemsCountArgs>): Prisma.PrismaPromise<T extends runtime.Types.Utils.Record<'select', any> ? T['select'] extends true ? number : Prisma.GetScalarType<T['select'], Cart_cart_itemsCountAggregateOutputType> : number>;
    /**
     * Allows you to perform aggregations operations on a Cart_cart_items.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {Cart_cart_itemsAggregateArgs} args - Select which aggregations you would like to apply and on what fields.
     * @example
     * // Ordered by age ascending
     * // Where email contains prisma.io
     * // Limited to the 10 users
     * const aggregations = await prisma.user.aggregate({
     *   _avg: {
     *     age: true,
     *   },
     *   where: {
     *     email: {
     *       contains: "prisma.io",
     *     },
     *   },
     *   orderBy: {
     *     age: "asc",
     *   },
     *   take: 10,
     * })
    **/
    aggregate<T extends Cart_cart_itemsAggregateArgs>(args: Prisma.Subset<T, Cart_cart_itemsAggregateArgs>): Prisma.PrismaPromise<GetCart_cart_itemsAggregateType<T>>;
    /**
     * Group by Cart_cart_items.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {cart_cart_itemsGroupByArgs} args - Group by arguments.
     * @example
     * // Group by city, order by createdAt, get count
     * const result = await prisma.user.groupBy({
     *   by: ['city', 'createdAt'],
     *   orderBy: {
     *     createdAt: true
     *   },
     *   _count: {
     *     _all: true
     *   },
     * })
     *
    **/
    groupBy<T extends cart_cart_itemsGroupByArgs, HasSelectOrTake extends Prisma.Or<Prisma.Extends<'skip', Prisma.Keys<T>>, Prisma.Extends<'take', Prisma.Keys<T>>>, OrderByArg extends Prisma.True extends HasSelectOrTake ? {
        orderBy: cart_cart_itemsGroupByArgs['orderBy'];
    } : {
        orderBy?: cart_cart_itemsGroupByArgs['orderBy'];
    }, OrderFields extends Prisma.ExcludeUnderscoreKeys<Prisma.Keys<Prisma.MaybeTupleToUnion<T['orderBy']>>>, ByFields extends Prisma.MaybeTupleToUnion<T['by']>, ByValid extends Prisma.Has<ByFields, OrderFields>, HavingFields extends Prisma.GetHavingFields<T['having']>, HavingValid extends Prisma.Has<ByFields, HavingFields>, ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False, InputErrors extends ByEmpty extends Prisma.True ? `Error: "by" must not be empty.` : HavingValid extends Prisma.False ? {
        [P in HavingFields]: P extends ByFields ? never : P extends string ? `Error: Field "${P}" used in "having" needs to be provided in "by".` : [
            Error,
            'Field ',
            P,
            ` in "having" needs to be provided in "by"`
        ];
    }[HavingFields] : 'take' extends Prisma.Keys<T> ? 'orderBy' extends Prisma.Keys<T> ? ByValid extends Prisma.True ? {} : {
        [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`;
    }[OrderFields] : 'Error: If you provide "take", you also need to provide "orderBy"' : 'skip' extends Prisma.Keys<T> ? 'orderBy' extends Prisma.Keys<T> ? ByValid extends Prisma.True ? {} : {
        [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`;
    }[OrderFields] : 'Error: If you provide "skip", you also need to provide "orderBy"' : ByValid extends Prisma.True ? {} : {
        [P in OrderFields]: P extends ByFields ? never : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`;
    }[OrderFields]>(args: Prisma.SubsetIntersection<T, cart_cart_itemsGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetCart_cart_itemsGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>;
    /**
     * Fields of the cart_cart_items model
     */
    readonly fields: cart_cart_itemsFieldRefs;
}
/**
 * The delegate class that acts as a "Promise-like" for cart_cart_items.
 * Why is this prefixed with `Prisma__`?
 * Because we want to prevent naming conflicts as mentioned in
 * https://github.com/prisma/prisma-client-js/issues/707
 */
export interface Prisma__cart_cart_itemsClient<T, Null = never, ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise";
    cart<T extends Prisma.cart_cart_items$cartArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.cart_cart_items$cartArgs<ExtArgs>>): Prisma.Prisma__cartClient<runtime.Types.Result.GetResult<Prisma.$cartPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>;
    cart_items<T extends Prisma.cart_cart_items$cart_itemsArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.cart_cart_items$cart_itemsArgs<ExtArgs>>): Prisma.Prisma__cart_itemsClient<runtime.Types.Result.GetResult<Prisma.$cart_itemsPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>;
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): runtime.Types.Utils.JsPromise<TResult1 | TResult2>;
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): runtime.Types.Utils.JsPromise<T | TResult>;
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): runtime.Types.Utils.JsPromise<T>;
}
/**
 * Fields of the cart_cart_items model
 */
export interface cart_cart_itemsFieldRefs {
    readonly id: Prisma.FieldRef<"cart_cart_items", 'Int'>;
    readonly cart_id: Prisma.FieldRef<"cart_cart_items", 'Int'>;
    readonly cart_items_id: Prisma.FieldRef<"cart_cart_items", 'Int'>;
}
/**
 * cart_cart_items findUnique
 */
export type cart_cart_itemsFindUniqueArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the cart_cart_items
     */
    select?: Prisma.cart_cart_itemsSelect<ExtArgs> | null;
    /**
     * Omit specific fields from the cart_cart_items
     */
    omit?: Prisma.cart_cart_itemsOmit<ExtArgs> | null;
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Prisma.cart_cart_itemsInclude<ExtArgs> | null;
    /**
     * Filter, which cart_cart_items to fetch.
     */
    where: Prisma.cart_cart_itemsWhereUniqueInput;
};
/**
 * cart_cart_items findUniqueOrThrow
 */
export type cart_cart_itemsFindUniqueOrThrowArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the cart_cart_items
     */
    select?: Prisma.cart_cart_itemsSelect<ExtArgs> | null;
    /**
     * Omit specific fields from the cart_cart_items
     */
    omit?: Prisma.cart_cart_itemsOmit<ExtArgs> | null;
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Prisma.cart_cart_itemsInclude<ExtArgs> | null;
    /**
     * Filter, which cart_cart_items to fetch.
     */
    where: Prisma.cart_cart_itemsWhereUniqueInput;
};
/**
 * cart_cart_items findFirst
 */
export type cart_cart_itemsFindFirstArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the cart_cart_items
     */
    select?: Prisma.cart_cart_itemsSelect<ExtArgs> | null;
    /**
     * Omit specific fields from the cart_cart_items
     */
    omit?: Prisma.cart_cart_itemsOmit<ExtArgs> | null;
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Prisma.cart_cart_itemsInclude<ExtArgs> | null;
    /**
     * Filter, which cart_cart_items to fetch.
     */
    where?: Prisma.cart_cart_itemsWhereInput;
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     *
     * Determine the order of cart_cart_items to fetch.
     */
    orderBy?: Prisma.cart_cart_itemsOrderByWithRelationInput | Prisma.cart_cart_itemsOrderByWithRelationInput[];
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     *
     * Sets the position for searching for cart_cart_items.
     */
    cursor?: Prisma.cart_cart_itemsWhereUniqueInput;
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     *
     * Take `±n` cart_cart_items from the position of the cursor.
     */
    take?: number;
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     *
     * Skip the first `n` cart_cart_items.
     */
    skip?: number;
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     *
     * Filter by unique combinations of cart_cart_items.
     */
    distinct?: Prisma.Cart_cart_itemsScalarFieldEnum | Prisma.Cart_cart_itemsScalarFieldEnum[];
};
/**
 * cart_cart_items findFirstOrThrow
 */
export type cart_cart_itemsFindFirstOrThrowArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the cart_cart_items
     */
    select?: Prisma.cart_cart_itemsSelect<ExtArgs> | null;
    /**
     * Omit specific fields from the cart_cart_items
     */
    omit?: Prisma.cart_cart_itemsOmit<ExtArgs> | null;
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Prisma.cart_cart_itemsInclude<ExtArgs> | null;
    /**
     * Filter, which cart_cart_items to fetch.
     */
    where?: Prisma.cart_cart_itemsWhereInput;
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     *
     * Determine the order of cart_cart_items to fetch.
     */
    orderBy?: Prisma.cart_cart_itemsOrderByWithRelationInput | Prisma.cart_cart_itemsOrderByWithRelationInput[];
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     *
     * Sets the position for searching for cart_cart_items.
     */
    cursor?: Prisma.cart_cart_itemsWhereUniqueInput;
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     *
     * Take `±n` cart_cart_items from the position of the cursor.
     */
    take?: number;
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     *
     * Skip the first `n` cart_cart_items.
     */
    skip?: number;
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     *
     * Filter by unique combinations of cart_cart_items.
     */
    distinct?: Prisma.Cart_cart_itemsScalarFieldEnum | Prisma.Cart_cart_itemsScalarFieldEnum[];
};
/**
 * cart_cart_items findMany
 */
export type cart_cart_itemsFindManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the cart_cart_items
     */
    select?: Prisma.cart_cart_itemsSelect<ExtArgs> | null;
    /**
     * Omit specific fields from the cart_cart_items
     */
    omit?: Prisma.cart_cart_itemsOmit<ExtArgs> | null;
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Prisma.cart_cart_itemsInclude<ExtArgs> | null;
    /**
     * Filter, which cart_cart_items to fetch.
     */
    where?: Prisma.cart_cart_itemsWhereInput;
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     *
     * Determine the order of cart_cart_items to fetch.
     */
    orderBy?: Prisma.cart_cart_itemsOrderByWithRelationInput | Prisma.cart_cart_itemsOrderByWithRelationInput[];
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     *
     * Sets the position for listing cart_cart_items.
     */
    cursor?: Prisma.cart_cart_itemsWhereUniqueInput;
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     *
     * Take `±n` cart_cart_items from the position of the cursor.
     */
    take?: number;
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     *
     * Skip the first `n` cart_cart_items.
     */
    skip?: number;
    distinct?: Prisma.Cart_cart_itemsScalarFieldEnum | Prisma.Cart_cart_itemsScalarFieldEnum[];
};
/**
 * cart_cart_items create
 */
export type cart_cart_itemsCreateArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the cart_cart_items
     */
    select?: Prisma.cart_cart_itemsSelect<ExtArgs> | null;
    /**
     * Omit specific fields from the cart_cart_items
     */
    omit?: Prisma.cart_cart_itemsOmit<ExtArgs> | null;
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Prisma.cart_cart_itemsInclude<ExtArgs> | null;
    /**
     * The data needed to create a cart_cart_items.
     */
    data?: Prisma.XOR<Prisma.cart_cart_itemsCreateInput, Prisma.cart_cart_itemsUncheckedCreateInput>;
};
/**
 * cart_cart_items createMany
 */
export type cart_cart_itemsCreateManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    /**
     * The data used to create many cart_cart_items.
     */
    data: Prisma.cart_cart_itemsCreateManyInput | Prisma.cart_cart_itemsCreateManyInput[];
    skipDuplicates?: boolean;
};
/**
 * cart_cart_items createManyAndReturn
 */
export type cart_cart_itemsCreateManyAndReturnArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the cart_cart_items
     */
    select?: Prisma.cart_cart_itemsSelectCreateManyAndReturn<ExtArgs> | null;
    /**
     * Omit specific fields from the cart_cart_items
     */
    omit?: Prisma.cart_cart_itemsOmit<ExtArgs> | null;
    /**
     * The data used to create many cart_cart_items.
     */
    data: Prisma.cart_cart_itemsCreateManyInput | Prisma.cart_cart_itemsCreateManyInput[];
    skipDuplicates?: boolean;
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Prisma.cart_cart_itemsIncludeCreateManyAndReturn<ExtArgs> | null;
};
/**
 * cart_cart_items update
 */
export type cart_cart_itemsUpdateArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the cart_cart_items
     */
    select?: Prisma.cart_cart_itemsSelect<ExtArgs> | null;
    /**
     * Omit specific fields from the cart_cart_items
     */
    omit?: Prisma.cart_cart_itemsOmit<ExtArgs> | null;
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Prisma.cart_cart_itemsInclude<ExtArgs> | null;
    /**
     * The data needed to update a cart_cart_items.
     */
    data: Prisma.XOR<Prisma.cart_cart_itemsUpdateInput, Prisma.cart_cart_itemsUncheckedUpdateInput>;
    /**
     * Choose, which cart_cart_items to update.
     */
    where: Prisma.cart_cart_itemsWhereUniqueInput;
};
/**
 * cart_cart_items updateMany
 */
export type cart_cart_itemsUpdateManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    /**
     * The data used to update cart_cart_items.
     */
    data: Prisma.XOR<Prisma.cart_cart_itemsUpdateManyMutationInput, Prisma.cart_cart_itemsUncheckedUpdateManyInput>;
    /**
     * Filter which cart_cart_items to update
     */
    where?: Prisma.cart_cart_itemsWhereInput;
    /**
     * Limit how many cart_cart_items to update.
     */
    limit?: number;
};
/**
 * cart_cart_items updateManyAndReturn
 */
export type cart_cart_itemsUpdateManyAndReturnArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the cart_cart_items
     */
    select?: Prisma.cart_cart_itemsSelectUpdateManyAndReturn<ExtArgs> | null;
    /**
     * Omit specific fields from the cart_cart_items
     */
    omit?: Prisma.cart_cart_itemsOmit<ExtArgs> | null;
    /**
     * The data used to update cart_cart_items.
     */
    data: Prisma.XOR<Prisma.cart_cart_itemsUpdateManyMutationInput, Prisma.cart_cart_itemsUncheckedUpdateManyInput>;
    /**
     * Filter which cart_cart_items to update
     */
    where?: Prisma.cart_cart_itemsWhereInput;
    /**
     * Limit how many cart_cart_items to update.
     */
    limit?: number;
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Prisma.cart_cart_itemsIncludeUpdateManyAndReturn<ExtArgs> | null;
};
/**
 * cart_cart_items upsert
 */
export type cart_cart_itemsUpsertArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the cart_cart_items
     */
    select?: Prisma.cart_cart_itemsSelect<ExtArgs> | null;
    /**
     * Omit specific fields from the cart_cart_items
     */
    omit?: Prisma.cart_cart_itemsOmit<ExtArgs> | null;
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Prisma.cart_cart_itemsInclude<ExtArgs> | null;
    /**
     * The filter to search for the cart_cart_items to update in case it exists.
     */
    where: Prisma.cart_cart_itemsWhereUniqueInput;
    /**
     * In case the cart_cart_items found by the `where` argument doesn't exist, create a new cart_cart_items with this data.
     */
    create: Prisma.XOR<Prisma.cart_cart_itemsCreateInput, Prisma.cart_cart_itemsUncheckedCreateInput>;
    /**
     * In case the cart_cart_items was found with the provided `where` argument, update it with this data.
     */
    update: Prisma.XOR<Prisma.cart_cart_itemsUpdateInput, Prisma.cart_cart_itemsUncheckedUpdateInput>;
};
/**
 * cart_cart_items delete
 */
export type cart_cart_itemsDeleteArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the cart_cart_items
     */
    select?: Prisma.cart_cart_itemsSelect<ExtArgs> | null;
    /**
     * Omit specific fields from the cart_cart_items
     */
    omit?: Prisma.cart_cart_itemsOmit<ExtArgs> | null;
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Prisma.cart_cart_itemsInclude<ExtArgs> | null;
    /**
     * Filter which cart_cart_items to delete.
     */
    where: Prisma.cart_cart_itemsWhereUniqueInput;
};
/**
 * cart_cart_items deleteMany
 */
export type cart_cart_itemsDeleteManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    /**
     * Filter which cart_cart_items to delete
     */
    where?: Prisma.cart_cart_itemsWhereInput;
    /**
     * Limit how many cart_cart_items to delete.
     */
    limit?: number;
};
/**
 * cart_cart_items.cart
 */
export type cart_cart_items$cartArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the cart
     */
    select?: Prisma.cartSelect<ExtArgs> | null;
    /**
     * Omit specific fields from the cart
     */
    omit?: Prisma.cartOmit<ExtArgs> | null;
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Prisma.cartInclude<ExtArgs> | null;
    where?: Prisma.cartWhereInput;
};
/**
 * cart_cart_items.cart_items
 */
export type cart_cart_items$cart_itemsArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the cart_items
     */
    select?: Prisma.cart_itemsSelect<ExtArgs> | null;
    /**
     * Omit specific fields from the cart_items
     */
    omit?: Prisma.cart_itemsOmit<ExtArgs> | null;
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Prisma.cart_itemsInclude<ExtArgs> | null;
    where?: Prisma.cart_itemsWhereInput;
};
/**
 * cart_cart_items without action
 */
export type cart_cart_itemsDefaultArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the cart_cart_items
     */
    select?: Prisma.cart_cart_itemsSelect<ExtArgs> | null;
    /**
     * Omit specific fields from the cart_cart_items
     */
    omit?: Prisma.cart_cart_itemsOmit<ExtArgs> | null;
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: Prisma.cart_cart_itemsInclude<ExtArgs> | null;
};
export {};
