default: {
create: (
data: {
category: ItemCategory;
name: string;
price: number;
stock: number;
user?: number;
},
) => Promise<
{
category: ItemCategory;
id: number;
name: string;
price: number;
stock: number;
user?: | number
| { email?: string; id: number; name?: string; username: string };
},
>;
getAll: (
pagi: {
order: Order;
orderBy?: Name | Category | Price | Stock | CreatedAt | UpdatedAt | User;
page: number;
pageSize: number;
},
) => Promise<
{
list: {
category: ItemCategory;
id: number;
name: string;
price: number;
stock: number;
user?: | number
| { email?: string; id: number; name?: string; username: string };
}[];
total: number;
},
>;
getById: (
id: number,
) => Promise<
{
category: ItemCategory;
id: number;
name: string;
price: number;
stock: number;
user?: | number
| { email?: string; id: number; name?: string; username: string };
},
>;
remove: (id: number) => Promise<void>;
removeBulk: (ids: number[]) => Promise<void>;
search: (
filter: {
category?: Book | Electronics | Misc;
name?: string;
order: Order;
orderBy?: Name | Category | Price | Stock | CreatedAt | UpdatedAt | User;
page: number;
pageSize: number;
priceMax?: number;
priceMin?: number;
stockMax?: number;
stockMin?: number;
user?: number;
} & { createdAtMax?: Date; createdAtMin?: Date },
) => Promise<
{
list: {
category: ItemCategory;
id: number;
name: string;
price: number;
stock: number;
user?: | number
| { email?: string; id: number; name?: string; username: string };
}[];
total: number;
},
>;
update: (
id: number,
data: {
category?: Book | Electronics | Misc;
name?: string;
price?: number;
stock?: number;
user?: number;
},
) => Promise<
{
category: ItemCategory;
id: number;
name: string;
price: number;
stock: number;
user?: | number
| { email?: string; id: number; name?: string; username: string };
},
>;
}
Type declaration
create: (
data: {
category: ItemCategory;
name: string;
price: number;
stock: number;
user?: number;
},
) => Promise<
{
category: ItemCategory;
id: number;
name: string;
price: number;
stock: number;
user?: | number
| { email?: string; id: number; name?: string; username: string };
},
>
getAll: (
pagi: {
order: Order;
orderBy?: Name | Category | Price | Stock | CreatedAt | UpdatedAt | User;
page: number;
pageSize: number;
},
) => Promise<
{
list: {
category: ItemCategory;
id: number;
name: string;
price: number;
stock: number;
user?: | number
| { email?: string; id: number; name?: string; username: string };
}[];
total: number;
},
>
getById: (
id: number,
) => Promise<
{
category: ItemCategory;
id: number;
name: string;
price: number;
stock: number;
user?: | number
| { email?: string; id: number; name?: string; username: string };
},
>
remove: (id: number) => Promise<void>
removeBulk: (ids: number[]) => Promise<void>
search: (
filter: {
category?: Book | Electronics | Misc;
name?: string;
order: Order;
orderBy?: Name | Category | Price | Stock | CreatedAt | UpdatedAt | User;
page: number;
pageSize: number;
priceMax?: number;
priceMin?: number;
stockMax?: number;
stockMin?: number;
user?: number;
} & { createdAtMax?: Date; createdAtMin?: Date },
) => Promise<
{
list: {
category: ItemCategory;
id: number;
name: string;
price: number;
stock: number;
user?: | number
| { email?: string; id: number; name?: string; username: string };
}[];
total: number;
},
>
update: (
id: number,
data: {
category?: Book | Electronics | Misc;
name?: string;
price?: number;
stock?: number;
user?: number;
},
) => Promise<
{
category: ItemCategory;
id: number;
name: string;
price: number;
stock: number;
user?: | number
| { email?: string; id: number; name?: string; username: string };
},
>