Files
bigcapital/server/src/interfaces/Item.ts
a.bouhuolia ce875ccf4e feat(contacts): auto-complete contacts.
feat(items): auto-complete items.
feat(resources): resource columns feat.
feat(contacts): retrieve specific contact details.
2021-03-03 11:35:42 +02:00

85 lines
1.6 KiB
TypeScript

import { IDynamicListFilter } from 'interfaces/DynamicFilter';
export interface IItem{
id: number,
name: string,
type: string,
code: string,
sellable: boolean,
purchasable: boolean,
costPrice: number,
sellPrice: number,
currencyCode: string,
costAccountId: number,
sellAccountId: number,
inventoryAccountId: number,
sellDescription: string,
purchaseDescription: string,
quantityOnHand: number,
note: string,
active: boolean,
categoryId: number,
userId: number,
createdAt: Date,
updatedAt: Date,
}
export interface IItemDTO {
name: string,
type: string,
code: string,
sellable: boolean,
purchasable: boolean,
costPrice: number,
sellPrice: number,
currencyCode: string,
costAccountId: number,
sellAccountId: number,
inventoryAccountId: number,
sellDescription: string,
purchaseDescription: string,
quantityOnHand: number,
note: string,
active: boolean,
categoryId: number,
}
export interface IItemsService {
bulkDeleteItems(tenantId: number, itemsIds: number[]): Promise<void>;
getItem(tenantId: number, itemId: number): Promise<IItem>;
deleteItem(tenantId: number, itemId: number): Promise<void>;
editItem(tenantId: number, itemId: number, itemDTO: IItemDTO): Promise<IItem>;
newItem(tenantId: number, itemDTO: IItemDTO): Promise<IItem>;
itemsList(tenantId: number, itemsFilter: IItemsFilter): Promise<{items: IItem[]}>;
}
export interface IItemsFilter extends IDynamicListFilter {
stringifiedFilterRoles?: string,
page: number,
pageSize: number,
};
export interface IItemsAutoCompleteFilter {
limit: number,
keyword: string,
}