feat: update validation and exception handling, refactor controller routes, and enhance sales invoice item DTO

- Removed global validation pipe and added a new ValidationExceptionFilter for better error handling.
- Refactored controller routes to use underscores instead of hyphens for consistency.
- Updated CreateSalesInvoiceItemDto to include new fields: quantity, unit_type, and payload.
- Modified CreateSalesInvoiceDto to enforce items as an array with a minimum size.
- Added Enums module to provide gold karat values through a dedicated endpoint.
- Introduced new columns in the database schema for sales invoice items and goods.
This commit is contained in:
2026-02-16 20:51:34 +03:30
parent a073af76fe
commit 55b96d4f79
28 changed files with 572 additions and 122 deletions
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE `goods` ADD COLUMN `price_text` VARCHAR(100) NULL;
@@ -0,0 +1,37 @@
/*
Warnings:
- You are about to drop the column `price_text` on the `goods` table. All the data in the column will be lost.
- You are about to drop the column `count` on the `sales_invoice_items` table. All the data in the column will be lost.
- Added the required column `quantity` to the `sales_invoice_items` table without a default value. This is not possible if the table is not empty.
- Added the required column `unit_type` to the `sales_invoice_items` table without a default value. This is not possible if the table is not empty.
*/
-- DropForeignKey
ALTER TABLE `sales_invoice_items` DROP FOREIGN KEY `sales_invoice_items_good_id_fkey`;
-- DropForeignKey
ALTER TABLE `sales_invoice_items` DROP FOREIGN KEY `sales_invoice_items_service_id_fkey`;
-- DropIndex
DROP INDEX `sales_invoice_items_good_id_fkey` ON `sales_invoice_items`;
-- DropIndex
DROP INDEX `sales_invoice_items_service_id_fkey` ON `sales_invoice_items`;
-- AlterTable
ALTER TABLE `goods` DROP COLUMN `price_text`;
-- AlterTable
ALTER TABLE `sales_invoice_items` DROP COLUMN `count`,
ADD COLUMN `payload` JSON NULL,
ADD COLUMN `quantity` DECIMAL(10, 0) NOT NULL,
ADD COLUMN `unit_type` ENUM('COUNT', 'GRAM', 'KILOGRAM', 'LITER', 'METER', 'HOUR') NOT NULL,
MODIFY `good_id` VARCHAR(191) NULL,
MODIFY `service_id` VARCHAR(191) NULL;
-- AddForeignKey
ALTER TABLE `sales_invoice_items` ADD CONSTRAINT `sales_invoice_items_good_id_fkey` FOREIGN KEY (`good_id`) REFERENCES `goods`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE `sales_invoice_items` ADD CONSTRAINT `sales_invoice_items_service_id_fkey` FOREIGN KEY (`service_id`) REFERENCES `services`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
+14
View File
@@ -11,3 +11,17 @@ enum PurchaseReceiptStatus {
PARTIALLY_PAID PARTIALLY_PAID
PAID PAID
} }
enum SalesInvoiceType {
GOOD
SERVICE
}
enum UnitType {
COUNT
GRAM
KILOGRAM
LITER
METER
HOUR
}
+6 -4
View File
@@ -13,19 +13,21 @@ model SalesInvoice {
items SalesInvoiceItem[] items SalesInvoiceItem[]
sales_invoice_payments SalesInvoicePayment[] sales_invoice_payments SalesInvoicePayment[]
@@index([customer_id])
@@map("sales_invoices") @@map("sales_invoices")
} }
model SalesInvoiceItem { model SalesInvoiceItem {
id String @id @default(uuid()) id String @id @default(uuid())
count Decimal @db.Decimal(10, 0) quantity Decimal @db.Decimal(10, 0)
unit_type UnitType
unit_price Decimal @default(0.00) @db.Decimal(15, 2) unit_price Decimal @default(0.00) @db.Decimal(15, 2)
total_amount Decimal @default(0.00) @db.Decimal(15, 2) total_amount Decimal @default(0.00) @db.Decimal(15, 2)
created_at DateTime @default(now()) @db.Timestamp(0) created_at DateTime @default(now()) @db.Timestamp(0)
invoice_id String invoice_id String
good_id String good_id String?
service_id String service_id String?
payload Json?
invoice SalesInvoice @relation(fields: [invoice_id], references: [id]) invoice SalesInvoice @relation(fields: [invoice_id], references: [id])
good Good? @relation(fields: [good_id], references: [id]) good Good? @relation(fields: [good_id], references: [id])
+2
View File
@@ -4,6 +4,7 @@ import { AppService } from './app.service'
import { AuthModule } from './modules/auth/auth.module' import { AuthModule } from './modules/auth/auth.module'
import { ConfigModule } from './modules/config/config.module' import { ConfigModule } from './modules/config/config.module'
import { CustomersModule } from './modules/customers/customers.module' import { CustomersModule } from './modules/customers/customers.module'
import { EnumsModule } from './modules/enums/enums.module'
import { GoodCategoriesModule } from './modules/good-categories/good-categories.module' import { GoodCategoriesModule } from './modules/good-categories/good-categories.module'
import { GoodsModule } from './modules/goods/goods.module' import { GoodsModule } from './modules/goods/goods.module'
import { ProfileModule } from './modules/profile/profile.module' import { ProfileModule } from './modules/profile/profile.module'
@@ -32,6 +33,7 @@ import { PrismaModule } from './prisma/prisma.module'
UploadersModule, UploadersModule,
ConfigModule, ConfigModule,
ProfileModule, ProfileModule,
EnumsModule,
], ],
controllers: [AppController], controllers: [AppController],
providers: [AppService], providers: [AppService],
+6
View File
@@ -10,3 +10,9 @@ export enum AccountType {
PROVIDER, PROVIDER,
POS, POS,
} }
export enum GoldKarat {
KARAT_18 = 18,
KARAT_21 = 21,
KARAT_24 = 24,
}
@@ -0,0 +1,27 @@
import {
ArgumentsHost,
BadRequestException,
Catch,
ExceptionFilter,
} from '@nestjs/common'
import { Response } from 'express'
@Catch(BadRequestException)
export class ValidationExceptionFilter implements ExceptionFilter {
constructor() {
console.log('ValidationExceptionFilter initialized')
}
catch(exception: BadRequestException, host: ArgumentsHost) {
const ctx = host.switchToHttp()
const response = ctx.getResponse<Response>()
const status = exception.getStatus()
const exceptionResponse = exception.getResponse()
console.log(exception)
response.status(status).json({
statusCode: status,
message: 'Validation failed',
errors: (exceptionResponse as any).message || exceptionResponse,
})
}
}
@@ -23,6 +23,8 @@ import { map } from 'rxjs/operators'
@Injectable() @Injectable()
export class ResponseMappingInterceptor implements NestInterceptor { export class ResponseMappingInterceptor implements NestInterceptor {
intercept(context: ExecutionContext, next: CallHandler): Observable<any> { intercept(context: ExecutionContext, next: CallHandler): Observable<any> {
console.log('first')
const http = context.switchToHttp() const http = context.switchToHttp()
const response = http.getResponse() const response = http.getResponse()
const request = http.getRequest() const request = http.getRequest()
@@ -30,6 +32,7 @@ export class ResponseMappingInterceptor implements NestInterceptor {
return next.handle().pipe( return next.handle().pipe(
map(data => { map(data => {
const statusCode: number = (response as Response)?.statusCode ?? 200 const statusCode: number = (response as Response)?.statusCode ?? 200
console.log(data)
if (data && typeof data === 'object') { if (data && typeof data === 'object') {
if (Array.isArray((data as any).errors) && statusCode >= 400) { if (Array.isArray((data as any).errors) && statusCode >= 400) {
@@ -0,0 +1,8 @@
import { GoldKarat } from '../enums/enums'
export interface SaleInvoicePayload {
weight: number
karat: keyof typeof GoldKarat
wages: number
profit: number
}
+2
View File
@@ -20,6 +20,8 @@ export const ResponseMapper = {
}, },
single<T>(item: T): MapperWrapper<T> { single<T>(item: T): MapperWrapper<T> {
console.log('asdasdsaasdsa')
return { __mapped: 'single', data: item } return { __mapped: 'single', data: item }
}, },
+109
View File
@@ -202,6 +202,74 @@ export type IntWithAggregatesFilter<$PrismaModel = never> = {
_max?: Prisma.NestedIntFilter<$PrismaModel> _max?: Prisma.NestedIntFilter<$PrismaModel>
} }
export type EnumUnitTypeFilter<$PrismaModel = never> = {
equals?: $Enums.UnitType | Prisma.EnumUnitTypeFieldRefInput<$PrismaModel>
in?: $Enums.UnitType[]
notIn?: $Enums.UnitType[]
not?: Prisma.NestedEnumUnitTypeFilter<$PrismaModel> | $Enums.UnitType
}
export type JsonNullableFilter<$PrismaModel = never> =
| Prisma.PatchUndefined<
Prisma.Either<Required<JsonNullableFilterBase<$PrismaModel>>, Exclude<keyof Required<JsonNullableFilterBase<$PrismaModel>>, 'path'>>,
Required<JsonNullableFilterBase<$PrismaModel>>
>
| Prisma.OptionalFlat<Omit<Required<JsonNullableFilterBase<$PrismaModel>>, 'path'>>
export type JsonNullableFilterBase<$PrismaModel = never> = {
equals?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter
path?: string
mode?: Prisma.QueryMode | Prisma.EnumQueryModeFieldRefInput<$PrismaModel>
string_contains?: string | Prisma.StringFieldRefInput<$PrismaModel>
string_starts_with?: string | Prisma.StringFieldRefInput<$PrismaModel>
string_ends_with?: string | Prisma.StringFieldRefInput<$PrismaModel>
array_starts_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null
array_ends_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null
array_contains?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null
lt?: runtime.InputJsonValue
lte?: runtime.InputJsonValue
gt?: runtime.InputJsonValue
gte?: runtime.InputJsonValue
not?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter
}
export type EnumUnitTypeWithAggregatesFilter<$PrismaModel = never> = {
equals?: $Enums.UnitType | Prisma.EnumUnitTypeFieldRefInput<$PrismaModel>
in?: $Enums.UnitType[]
notIn?: $Enums.UnitType[]
not?: Prisma.NestedEnumUnitTypeWithAggregatesFilter<$PrismaModel> | $Enums.UnitType
_count?: Prisma.NestedIntFilter<$PrismaModel>
_min?: Prisma.NestedEnumUnitTypeFilter<$PrismaModel>
_max?: Prisma.NestedEnumUnitTypeFilter<$PrismaModel>
}
export type JsonNullableWithAggregatesFilter<$PrismaModel = never> =
| Prisma.PatchUndefined<
Prisma.Either<Required<JsonNullableWithAggregatesFilterBase<$PrismaModel>>, Exclude<keyof Required<JsonNullableWithAggregatesFilterBase<$PrismaModel>>, 'path'>>,
Required<JsonNullableWithAggregatesFilterBase<$PrismaModel>>
>
| Prisma.OptionalFlat<Omit<Required<JsonNullableWithAggregatesFilterBase<$PrismaModel>>, 'path'>>
export type JsonNullableWithAggregatesFilterBase<$PrismaModel = never> = {
equals?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter
path?: string
mode?: Prisma.QueryMode | Prisma.EnumQueryModeFieldRefInput<$PrismaModel>
string_contains?: string | Prisma.StringFieldRefInput<$PrismaModel>
string_starts_with?: string | Prisma.StringFieldRefInput<$PrismaModel>
string_ends_with?: string | Prisma.StringFieldRefInput<$PrismaModel>
array_starts_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null
array_ends_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null
array_contains?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null
lt?: runtime.InputJsonValue
lte?: runtime.InputJsonValue
gt?: runtime.InputJsonValue
gte?: runtime.InputJsonValue
not?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter
_count?: Prisma.NestedIntNullableFilter<$PrismaModel>
_min?: Prisma.NestedJsonNullableFilter<$PrismaModel>
_max?: Prisma.NestedJsonNullableFilter<$PrismaModel>
}
export type EnumPaymentMethodTypeFilter<$PrismaModel = never> = { export type EnumPaymentMethodTypeFilter<$PrismaModel = never> = {
equals?: $Enums.PaymentMethodType | Prisma.EnumPaymentMethodTypeFieldRefInput<$PrismaModel> equals?: $Enums.PaymentMethodType | Prisma.EnumPaymentMethodTypeFieldRefInput<$PrismaModel>
in?: $Enums.PaymentMethodType[] in?: $Enums.PaymentMethodType[]
@@ -424,6 +492,47 @@ export type NestedFloatFilter<$PrismaModel = never> = {
not?: Prisma.NestedFloatFilter<$PrismaModel> | number not?: Prisma.NestedFloatFilter<$PrismaModel> | number
} }
export type NestedEnumUnitTypeFilter<$PrismaModel = never> = {
equals?: $Enums.UnitType | Prisma.EnumUnitTypeFieldRefInput<$PrismaModel>
in?: $Enums.UnitType[]
notIn?: $Enums.UnitType[]
not?: Prisma.NestedEnumUnitTypeFilter<$PrismaModel> | $Enums.UnitType
}
export type NestedEnumUnitTypeWithAggregatesFilter<$PrismaModel = never> = {
equals?: $Enums.UnitType | Prisma.EnumUnitTypeFieldRefInput<$PrismaModel>
in?: $Enums.UnitType[]
notIn?: $Enums.UnitType[]
not?: Prisma.NestedEnumUnitTypeWithAggregatesFilter<$PrismaModel> | $Enums.UnitType
_count?: Prisma.NestedIntFilter<$PrismaModel>
_min?: Prisma.NestedEnumUnitTypeFilter<$PrismaModel>
_max?: Prisma.NestedEnumUnitTypeFilter<$PrismaModel>
}
export type NestedJsonNullableFilter<$PrismaModel = never> =
| Prisma.PatchUndefined<
Prisma.Either<Required<NestedJsonNullableFilterBase<$PrismaModel>>, Exclude<keyof Required<NestedJsonNullableFilterBase<$PrismaModel>>, 'path'>>,
Required<NestedJsonNullableFilterBase<$PrismaModel>>
>
| Prisma.OptionalFlat<Omit<Required<NestedJsonNullableFilterBase<$PrismaModel>>, 'path'>>
export type NestedJsonNullableFilterBase<$PrismaModel = never> = {
equals?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter
path?: string
mode?: Prisma.QueryMode | Prisma.EnumQueryModeFieldRefInput<$PrismaModel>
string_contains?: string | Prisma.StringFieldRefInput<$PrismaModel>
string_starts_with?: string | Prisma.StringFieldRefInput<$PrismaModel>
string_ends_with?: string | Prisma.StringFieldRefInput<$PrismaModel>
array_starts_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null
array_ends_with?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null
array_contains?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | null
lt?: runtime.InputJsonValue
lte?: runtime.InputJsonValue
gt?: runtime.InputJsonValue
gte?: runtime.InputJsonValue
not?: runtime.InputJsonValue | Prisma.JsonFieldRefInput<$PrismaModel> | Prisma.JsonNullValueFilter
}
export type NestedEnumPaymentMethodTypeFilter<$PrismaModel = never> = { export type NestedEnumPaymentMethodTypeFilter<$PrismaModel = never> = {
equals?: $Enums.PaymentMethodType | Prisma.EnumPaymentMethodTypeFieldRefInput<$PrismaModel> equals?: $Enums.PaymentMethodType | Prisma.EnumPaymentMethodTypeFieldRefInput<$PrismaModel>
in?: $Enums.PaymentMethodType[] in?: $Enums.PaymentMethodType[]
+20
View File
@@ -27,3 +27,23 @@ export const PurchaseReceiptStatus = {
} as const } as const
export type PurchaseReceiptStatus = (typeof PurchaseReceiptStatus)[keyof typeof PurchaseReceiptStatus] export type PurchaseReceiptStatus = (typeof PurchaseReceiptStatus)[keyof typeof PurchaseReceiptStatus]
export const SalesInvoiceType = {
GOOD: 'GOOD',
SERVICE: 'SERVICE'
} as const
export type SalesInvoiceType = (typeof SalesInvoiceType)[keyof typeof SalesInvoiceType]
export const UnitType = {
COUNT: 'COUNT',
GRAM: 'GRAM',
KILOGRAM: 'KILOGRAM',
LITER: 'LITER',
METER: 'METER',
HOUR: 'HOUR'
} as const
export type UnitType = (typeof UnitType)[keyof typeof UnitType]
File diff suppressed because one or more lines are too long
@@ -1210,13 +1210,15 @@ export type SalesInvoiceScalarFieldEnum = (typeof SalesInvoiceScalarFieldEnum)[k
export const SalesInvoiceItemScalarFieldEnum = { export const SalesInvoiceItemScalarFieldEnum = {
id: 'id', id: 'id',
count: 'count', quantity: 'quantity',
unit_type: 'unit_type',
unit_price: 'unit_price', unit_price: 'unit_price',
total_amount: 'total_amount', total_amount: 'total_amount',
created_at: 'created_at', created_at: 'created_at',
invoice_id: 'invoice_id', invoice_id: 'invoice_id',
good_id: 'good_id', good_id: 'good_id',
service_id: 'service_id' service_id: 'service_id',
payload: 'payload'
} as const } as const
export type SalesInvoiceItemScalarFieldEnum = (typeof SalesInvoiceItemScalarFieldEnum)[keyof typeof SalesInvoiceItemScalarFieldEnum] export type SalesInvoiceItemScalarFieldEnum = (typeof SalesInvoiceItemScalarFieldEnum)[keyof typeof SalesInvoiceItemScalarFieldEnum]
@@ -1276,6 +1278,14 @@ export const SortOrder = {
export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder] export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder]
export const NullableJsonNullValueInput = {
DbNull: DbNull,
JsonNull: JsonNull
} as const
export type NullableJsonNullValueInput = (typeof NullableJsonNullValueInput)[keyof typeof NullableJsonNullValueInput]
export const NullsOrder = { export const NullsOrder = {
first: 'first', first: 'first',
last: 'last' last: 'last'
@@ -1364,6 +1374,23 @@ export const SalesInvoiceOrderByRelevanceFieldEnum = {
export type SalesInvoiceOrderByRelevanceFieldEnum = (typeof SalesInvoiceOrderByRelevanceFieldEnum)[keyof typeof SalesInvoiceOrderByRelevanceFieldEnum] export type SalesInvoiceOrderByRelevanceFieldEnum = (typeof SalesInvoiceOrderByRelevanceFieldEnum)[keyof typeof SalesInvoiceOrderByRelevanceFieldEnum]
export const JsonNullValueFilter = {
DbNull: DbNull,
JsonNull: JsonNull,
AnyNull: AnyNull
} as const
export type JsonNullValueFilter = (typeof JsonNullValueFilter)[keyof typeof JsonNullValueFilter]
export const QueryMode = {
default: 'default',
insensitive: 'insensitive'
} as const
export type QueryMode = (typeof QueryMode)[keyof typeof QueryMode]
export const SalesInvoiceItemOrderByRelevanceFieldEnum = { export const SalesInvoiceItemOrderByRelevanceFieldEnum = {
id: 'id', id: 'id',
invoice_id: 'invoice_id', invoice_id: 'invoice_id',
@@ -1450,6 +1477,27 @@ export type IntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'In
/**
* Reference to a field of type 'UnitType'
*/
export type EnumUnitTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'UnitType'>
/**
* Reference to a field of type 'Json'
*/
export type JsonFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Json'>
/**
* Reference to a field of type 'QueryMode'
*/
export type EnumQueryModeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'QueryMode'>
/** /**
* Reference to a field of type 'PaymentMethodType' * Reference to a field of type 'PaymentMethodType'
*/ */
@@ -177,13 +177,15 @@ export type SalesInvoiceScalarFieldEnum = (typeof SalesInvoiceScalarFieldEnum)[k
export const SalesInvoiceItemScalarFieldEnum = { export const SalesInvoiceItemScalarFieldEnum = {
id: 'id', id: 'id',
count: 'count', quantity: 'quantity',
unit_type: 'unit_type',
unit_price: 'unit_price', unit_price: 'unit_price',
total_amount: 'total_amount', total_amount: 'total_amount',
created_at: 'created_at', created_at: 'created_at',
invoice_id: 'invoice_id', invoice_id: 'invoice_id',
good_id: 'good_id', good_id: 'good_id',
service_id: 'service_id' service_id: 'service_id',
payload: 'payload'
} as const } as const
export type SalesInvoiceItemScalarFieldEnum = (typeof SalesInvoiceItemScalarFieldEnum)[keyof typeof SalesInvoiceItemScalarFieldEnum] export type SalesInvoiceItemScalarFieldEnum = (typeof SalesInvoiceItemScalarFieldEnum)[keyof typeof SalesInvoiceItemScalarFieldEnum]
@@ -243,6 +245,14 @@ export const SortOrder = {
export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder] export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder]
export const NullableJsonNullValueInput = {
DbNull: 'DbNull',
JsonNull: 'JsonNull'
} as const
export type NullableJsonNullValueInput = (typeof NullableJsonNullValueInput)[keyof typeof NullableJsonNullValueInput]
export const NullsOrder = { export const NullsOrder = {
first: 'first', first: 'first',
last: 'last' last: 'last'
@@ -331,6 +341,23 @@ export const SalesInvoiceOrderByRelevanceFieldEnum = {
export type SalesInvoiceOrderByRelevanceFieldEnum = (typeof SalesInvoiceOrderByRelevanceFieldEnum)[keyof typeof SalesInvoiceOrderByRelevanceFieldEnum] export type SalesInvoiceOrderByRelevanceFieldEnum = (typeof SalesInvoiceOrderByRelevanceFieldEnum)[keyof typeof SalesInvoiceOrderByRelevanceFieldEnum]
export const JsonNullValueFilter = {
DbNull: 'DbNull',
JsonNull: 'JsonNull',
AnyNull: 'AnyNull'
} as const
export type JsonNullValueFilter = (typeof JsonNullValueFilter)[keyof typeof JsonNullValueFilter]
export const QueryMode = {
default: 'default',
insensitive: 'insensitive'
} as const
export type QueryMode = (typeof QueryMode)[keyof typeof QueryMode]
export const SalesInvoiceItemOrderByRelevanceFieldEnum = { export const SalesInvoiceItemOrderByRelevanceFieldEnum = {
id: 'id', id: 'id',
invoice_id: 'invoice_id', invoice_id: 'invoice_id',
+180 -92
View File
@@ -27,20 +27,21 @@ export type AggregateSalesInvoiceItem = {
} }
export type SalesInvoiceItemAvgAggregateOutputType = { export type SalesInvoiceItemAvgAggregateOutputType = {
count: runtime.Decimal | null quantity: runtime.Decimal | null
unit_price: runtime.Decimal | null unit_price: runtime.Decimal | null
total_amount: runtime.Decimal | null total_amount: runtime.Decimal | null
} }
export type SalesInvoiceItemSumAggregateOutputType = { export type SalesInvoiceItemSumAggregateOutputType = {
count: runtime.Decimal | null quantity: runtime.Decimal | null
unit_price: runtime.Decimal | null unit_price: runtime.Decimal | null
total_amount: runtime.Decimal | null total_amount: runtime.Decimal | null
} }
export type SalesInvoiceItemMinAggregateOutputType = { export type SalesInvoiceItemMinAggregateOutputType = {
id: string | null id: string | null
count: runtime.Decimal | null quantity: runtime.Decimal | null
unit_type: $Enums.UnitType | null
unit_price: runtime.Decimal | null unit_price: runtime.Decimal | null
total_amount: runtime.Decimal | null total_amount: runtime.Decimal | null
created_at: Date | null created_at: Date | null
@@ -51,7 +52,8 @@ export type SalesInvoiceItemMinAggregateOutputType = {
export type SalesInvoiceItemMaxAggregateOutputType = { export type SalesInvoiceItemMaxAggregateOutputType = {
id: string | null id: string | null
count: runtime.Decimal | null quantity: runtime.Decimal | null
unit_type: $Enums.UnitType | null
unit_price: runtime.Decimal | null unit_price: runtime.Decimal | null
total_amount: runtime.Decimal | null total_amount: runtime.Decimal | null
created_at: Date | null created_at: Date | null
@@ -62,32 +64,35 @@ export type SalesInvoiceItemMaxAggregateOutputType = {
export type SalesInvoiceItemCountAggregateOutputType = { export type SalesInvoiceItemCountAggregateOutputType = {
id: number id: number
count: number quantity: number
unit_type: number
unit_price: number unit_price: number
total_amount: number total_amount: number
created_at: number created_at: number
invoice_id: number invoice_id: number
good_id: number good_id: number
service_id: number service_id: number
payload: number
_all: number _all: number
} }
export type SalesInvoiceItemAvgAggregateInputType = { export type SalesInvoiceItemAvgAggregateInputType = {
count?: true quantity?: true
unit_price?: true unit_price?: true
total_amount?: true total_amount?: true
} }
export type SalesInvoiceItemSumAggregateInputType = { export type SalesInvoiceItemSumAggregateInputType = {
count?: true quantity?: true
unit_price?: true unit_price?: true
total_amount?: true total_amount?: true
} }
export type SalesInvoiceItemMinAggregateInputType = { export type SalesInvoiceItemMinAggregateInputType = {
id?: true id?: true
count?: true quantity?: true
unit_type?: true
unit_price?: true unit_price?: true
total_amount?: true total_amount?: true
created_at?: true created_at?: true
@@ -98,7 +103,8 @@ export type SalesInvoiceItemMinAggregateInputType = {
export type SalesInvoiceItemMaxAggregateInputType = { export type SalesInvoiceItemMaxAggregateInputType = {
id?: true id?: true
count?: true quantity?: true
unit_type?: true
unit_price?: true unit_price?: true
total_amount?: true total_amount?: true
created_at?: true created_at?: true
@@ -109,13 +115,15 @@ export type SalesInvoiceItemMaxAggregateInputType = {
export type SalesInvoiceItemCountAggregateInputType = { export type SalesInvoiceItemCountAggregateInputType = {
id?: true id?: true
count?: true quantity?: true
unit_type?: true
unit_price?: true unit_price?: true
total_amount?: true total_amount?: true
created_at?: true created_at?: true
invoice_id?: true invoice_id?: true
good_id?: true good_id?: true
service_id?: true service_id?: true
payload?: true
_all?: true _all?: true
} }
@@ -207,13 +215,15 @@ export type SalesInvoiceItemGroupByArgs<ExtArgs extends runtime.Types.Extensions
export type SalesInvoiceItemGroupByOutputType = { export type SalesInvoiceItemGroupByOutputType = {
id: string id: string
count: runtime.Decimal quantity: runtime.Decimal
unit_type: $Enums.UnitType
unit_price: runtime.Decimal unit_price: runtime.Decimal
total_amount: runtime.Decimal total_amount: runtime.Decimal
created_at: Date created_at: Date
invoice_id: string invoice_id: string
good_id: string good_id: string | null
service_id: string service_id: string | null
payload: runtime.JsonValue | null
_count: SalesInvoiceItemCountAggregateOutputType | null _count: SalesInvoiceItemCountAggregateOutputType | null
_avg: SalesInvoiceItemAvgAggregateOutputType | null _avg: SalesInvoiceItemAvgAggregateOutputType | null
_sum: SalesInvoiceItemSumAggregateOutputType | null _sum: SalesInvoiceItemSumAggregateOutputType | null
@@ -241,13 +251,15 @@ export type SalesInvoiceItemWhereInput = {
OR?: Prisma.SalesInvoiceItemWhereInput[] OR?: Prisma.SalesInvoiceItemWhereInput[]
NOT?: Prisma.SalesInvoiceItemWhereInput | Prisma.SalesInvoiceItemWhereInput[] NOT?: Prisma.SalesInvoiceItemWhereInput | Prisma.SalesInvoiceItemWhereInput[]
id?: Prisma.StringFilter<"SalesInvoiceItem"> | string id?: Prisma.StringFilter<"SalesInvoiceItem"> | string
count?: Prisma.DecimalFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string quantity?: Prisma.DecimalFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string
unit_type?: Prisma.EnumUnitTypeFilter<"SalesInvoiceItem"> | $Enums.UnitType
unit_price?: Prisma.DecimalFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string
total_amount?: Prisma.DecimalFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Prisma.DateTimeFilter<"SalesInvoiceItem"> | Date | string created_at?: Prisma.DateTimeFilter<"SalesInvoiceItem"> | Date | string
invoice_id?: Prisma.StringFilter<"SalesInvoiceItem"> | string invoice_id?: Prisma.StringFilter<"SalesInvoiceItem"> | string
good_id?: Prisma.StringFilter<"SalesInvoiceItem"> | string good_id?: Prisma.StringNullableFilter<"SalesInvoiceItem"> | string | null
service_id?: Prisma.StringFilter<"SalesInvoiceItem"> | string service_id?: Prisma.StringNullableFilter<"SalesInvoiceItem"> | string | null
payload?: Prisma.JsonNullableFilter<"SalesInvoiceItem">
invoice?: Prisma.XOR<Prisma.SalesInvoiceScalarRelationFilter, Prisma.SalesInvoiceWhereInput> invoice?: Prisma.XOR<Prisma.SalesInvoiceScalarRelationFilter, Prisma.SalesInvoiceWhereInput>
good?: Prisma.XOR<Prisma.GoodNullableScalarRelationFilter, Prisma.GoodWhereInput> | null good?: Prisma.XOR<Prisma.GoodNullableScalarRelationFilter, Prisma.GoodWhereInput> | null
service?: Prisma.XOR<Prisma.ServiceNullableScalarRelationFilter, Prisma.ServiceWhereInput> | null service?: Prisma.XOR<Prisma.ServiceNullableScalarRelationFilter, Prisma.ServiceWhereInput> | null
@@ -255,13 +267,15 @@ export type SalesInvoiceItemWhereInput = {
export type SalesInvoiceItemOrderByWithRelationInput = { export type SalesInvoiceItemOrderByWithRelationInput = {
id?: Prisma.SortOrder id?: Prisma.SortOrder
count?: Prisma.SortOrder quantity?: Prisma.SortOrder
unit_type?: Prisma.SortOrder
unit_price?: Prisma.SortOrder unit_price?: Prisma.SortOrder
total_amount?: Prisma.SortOrder total_amount?: Prisma.SortOrder
created_at?: Prisma.SortOrder created_at?: Prisma.SortOrder
invoice_id?: Prisma.SortOrder invoice_id?: Prisma.SortOrder
good_id?: Prisma.SortOrder good_id?: Prisma.SortOrderInput | Prisma.SortOrder
service_id?: Prisma.SortOrder service_id?: Prisma.SortOrderInput | Prisma.SortOrder
payload?: Prisma.SortOrderInput | Prisma.SortOrder
invoice?: Prisma.SalesInvoiceOrderByWithRelationInput invoice?: Prisma.SalesInvoiceOrderByWithRelationInput
good?: Prisma.GoodOrderByWithRelationInput good?: Prisma.GoodOrderByWithRelationInput
service?: Prisma.ServiceOrderByWithRelationInput service?: Prisma.ServiceOrderByWithRelationInput
@@ -273,13 +287,15 @@ export type SalesInvoiceItemWhereUniqueInput = Prisma.AtLeast<{
AND?: Prisma.SalesInvoiceItemWhereInput | Prisma.SalesInvoiceItemWhereInput[] AND?: Prisma.SalesInvoiceItemWhereInput | Prisma.SalesInvoiceItemWhereInput[]
OR?: Prisma.SalesInvoiceItemWhereInput[] OR?: Prisma.SalesInvoiceItemWhereInput[]
NOT?: Prisma.SalesInvoiceItemWhereInput | Prisma.SalesInvoiceItemWhereInput[] NOT?: Prisma.SalesInvoiceItemWhereInput | Prisma.SalesInvoiceItemWhereInput[]
count?: Prisma.DecimalFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string quantity?: Prisma.DecimalFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string
unit_type?: Prisma.EnumUnitTypeFilter<"SalesInvoiceItem"> | $Enums.UnitType
unit_price?: Prisma.DecimalFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string
total_amount?: Prisma.DecimalFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Prisma.DateTimeFilter<"SalesInvoiceItem"> | Date | string created_at?: Prisma.DateTimeFilter<"SalesInvoiceItem"> | Date | string
invoice_id?: Prisma.StringFilter<"SalesInvoiceItem"> | string invoice_id?: Prisma.StringFilter<"SalesInvoiceItem"> | string
good_id?: Prisma.StringFilter<"SalesInvoiceItem"> | string good_id?: Prisma.StringNullableFilter<"SalesInvoiceItem"> | string | null
service_id?: Prisma.StringFilter<"SalesInvoiceItem"> | string service_id?: Prisma.StringNullableFilter<"SalesInvoiceItem"> | string | null
payload?: Prisma.JsonNullableFilter<"SalesInvoiceItem">
invoice?: Prisma.XOR<Prisma.SalesInvoiceScalarRelationFilter, Prisma.SalesInvoiceWhereInput> invoice?: Prisma.XOR<Prisma.SalesInvoiceScalarRelationFilter, Prisma.SalesInvoiceWhereInput>
good?: Prisma.XOR<Prisma.GoodNullableScalarRelationFilter, Prisma.GoodWhereInput> | null good?: Prisma.XOR<Prisma.GoodNullableScalarRelationFilter, Prisma.GoodWhereInput> | null
service?: Prisma.XOR<Prisma.ServiceNullableScalarRelationFilter, Prisma.ServiceWhereInput> | null service?: Prisma.XOR<Prisma.ServiceNullableScalarRelationFilter, Prisma.ServiceWhereInput> | null
@@ -287,13 +303,15 @@ export type SalesInvoiceItemWhereUniqueInput = Prisma.AtLeast<{
export type SalesInvoiceItemOrderByWithAggregationInput = { export type SalesInvoiceItemOrderByWithAggregationInput = {
id?: Prisma.SortOrder id?: Prisma.SortOrder
count?: Prisma.SortOrder quantity?: Prisma.SortOrder
unit_type?: Prisma.SortOrder
unit_price?: Prisma.SortOrder unit_price?: Prisma.SortOrder
total_amount?: Prisma.SortOrder total_amount?: Prisma.SortOrder
created_at?: Prisma.SortOrder created_at?: Prisma.SortOrder
invoice_id?: Prisma.SortOrder invoice_id?: Prisma.SortOrder
good_id?: Prisma.SortOrder good_id?: Prisma.SortOrderInput | Prisma.SortOrder
service_id?: Prisma.SortOrder service_id?: Prisma.SortOrderInput | Prisma.SortOrder
payload?: Prisma.SortOrderInput | Prisma.SortOrder
_count?: Prisma.SalesInvoiceItemCountOrderByAggregateInput _count?: Prisma.SalesInvoiceItemCountOrderByAggregateInput
_avg?: Prisma.SalesInvoiceItemAvgOrderByAggregateInput _avg?: Prisma.SalesInvoiceItemAvgOrderByAggregateInput
_max?: Prisma.SalesInvoiceItemMaxOrderByAggregateInput _max?: Prisma.SalesInvoiceItemMaxOrderByAggregateInput
@@ -306,21 +324,25 @@ export type SalesInvoiceItemScalarWhereWithAggregatesInput = {
OR?: Prisma.SalesInvoiceItemScalarWhereWithAggregatesInput[] OR?: Prisma.SalesInvoiceItemScalarWhereWithAggregatesInput[]
NOT?: Prisma.SalesInvoiceItemScalarWhereWithAggregatesInput | Prisma.SalesInvoiceItemScalarWhereWithAggregatesInput[] NOT?: Prisma.SalesInvoiceItemScalarWhereWithAggregatesInput | Prisma.SalesInvoiceItemScalarWhereWithAggregatesInput[]
id?: Prisma.StringWithAggregatesFilter<"SalesInvoiceItem"> | string id?: Prisma.StringWithAggregatesFilter<"SalesInvoiceItem"> | string
count?: Prisma.DecimalWithAggregatesFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string quantity?: Prisma.DecimalWithAggregatesFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string
unit_type?: Prisma.EnumUnitTypeWithAggregatesFilter<"SalesInvoiceItem"> | $Enums.UnitType
unit_price?: Prisma.DecimalWithAggregatesFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalWithAggregatesFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string
total_amount?: Prisma.DecimalWithAggregatesFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalWithAggregatesFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Prisma.DateTimeWithAggregatesFilter<"SalesInvoiceItem"> | Date | string created_at?: Prisma.DateTimeWithAggregatesFilter<"SalesInvoiceItem"> | Date | string
invoice_id?: Prisma.StringWithAggregatesFilter<"SalesInvoiceItem"> | string invoice_id?: Prisma.StringWithAggregatesFilter<"SalesInvoiceItem"> | string
good_id?: Prisma.StringWithAggregatesFilter<"SalesInvoiceItem"> | string good_id?: Prisma.StringNullableWithAggregatesFilter<"SalesInvoiceItem"> | string | null
service_id?: Prisma.StringWithAggregatesFilter<"SalesInvoiceItem"> | string service_id?: Prisma.StringNullableWithAggregatesFilter<"SalesInvoiceItem"> | string | null
payload?: Prisma.JsonNullableWithAggregatesFilter<"SalesInvoiceItem">
} }
export type SalesInvoiceItemCreateInput = { export type SalesInvoiceItemCreateInput = {
id?: string id?: string
count: runtime.Decimal | runtime.DecimalJsLike | number | string quantity: runtime.Decimal | runtime.DecimalJsLike | number | string
unit_type: $Enums.UnitType
unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string
total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Date | string created_at?: Date | string
payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
invoice: Prisma.SalesInvoiceCreateNestedOneWithoutItemsInput invoice: Prisma.SalesInvoiceCreateNestedOneWithoutItemsInput
good?: Prisma.GoodCreateNestedOneWithoutSales_invoice_itemsInput good?: Prisma.GoodCreateNestedOneWithoutSales_invoice_itemsInput
service?: Prisma.ServiceCreateNestedOneWithoutSales_invoice_itemsInput service?: Prisma.ServiceCreateNestedOneWithoutSales_invoice_itemsInput
@@ -328,21 +350,25 @@ export type SalesInvoiceItemCreateInput = {
export type SalesInvoiceItemUncheckedCreateInput = { export type SalesInvoiceItemUncheckedCreateInput = {
id?: string id?: string
count: runtime.Decimal | runtime.DecimalJsLike | number | string quantity: runtime.Decimal | runtime.DecimalJsLike | number | string
unit_type: $Enums.UnitType
unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string
total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Date | string created_at?: Date | string
invoice_id: string invoice_id: string
good_id: string good_id?: string | null
service_id: string service_id?: string | null
payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
} }
export type SalesInvoiceItemUpdateInput = { export type SalesInvoiceItemUpdateInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string id?: Prisma.StringFieldUpdateOperationsInput | string
count?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType
unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
invoice?: Prisma.SalesInvoiceUpdateOneRequiredWithoutItemsNestedInput invoice?: Prisma.SalesInvoiceUpdateOneRequiredWithoutItemsNestedInput
good?: Prisma.GoodUpdateOneWithoutSales_invoice_itemsNestedInput good?: Prisma.GoodUpdateOneWithoutSales_invoice_itemsNestedInput
service?: Prisma.ServiceUpdateOneWithoutSales_invoice_itemsNestedInput service?: Prisma.ServiceUpdateOneWithoutSales_invoice_itemsNestedInput
@@ -350,43 +376,51 @@ export type SalesInvoiceItemUpdateInput = {
export type SalesInvoiceItemUncheckedUpdateInput = { export type SalesInvoiceItemUncheckedUpdateInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string id?: Prisma.StringFieldUpdateOperationsInput | string
count?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType
unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
invoice_id?: Prisma.StringFieldUpdateOperationsInput | string invoice_id?: Prisma.StringFieldUpdateOperationsInput | string
good_id?: Prisma.StringFieldUpdateOperationsInput | string good_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
service_id?: Prisma.StringFieldUpdateOperationsInput | string service_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
} }
export type SalesInvoiceItemCreateManyInput = { export type SalesInvoiceItemCreateManyInput = {
id?: string id?: string
count: runtime.Decimal | runtime.DecimalJsLike | number | string quantity: runtime.Decimal | runtime.DecimalJsLike | number | string
unit_type: $Enums.UnitType
unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string
total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Date | string created_at?: Date | string
invoice_id: string invoice_id: string
good_id: string good_id?: string | null
service_id: string service_id?: string | null
payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
} }
export type SalesInvoiceItemUpdateManyMutationInput = { export type SalesInvoiceItemUpdateManyMutationInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string id?: Prisma.StringFieldUpdateOperationsInput | string
count?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType
unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
} }
export type SalesInvoiceItemUncheckedUpdateManyInput = { export type SalesInvoiceItemUncheckedUpdateManyInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string id?: Prisma.StringFieldUpdateOperationsInput | string
count?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType
unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
invoice_id?: Prisma.StringFieldUpdateOperationsInput | string invoice_id?: Prisma.StringFieldUpdateOperationsInput | string
good_id?: Prisma.StringFieldUpdateOperationsInput | string good_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
service_id?: Prisma.StringFieldUpdateOperationsInput | string service_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
} }
export type SalesInvoiceItemListRelationFilter = { export type SalesInvoiceItemListRelationFilter = {
@@ -407,24 +441,27 @@ export type SalesInvoiceItemOrderByRelevanceInput = {
export type SalesInvoiceItemCountOrderByAggregateInput = { export type SalesInvoiceItemCountOrderByAggregateInput = {
id?: Prisma.SortOrder id?: Prisma.SortOrder
count?: Prisma.SortOrder quantity?: Prisma.SortOrder
unit_type?: Prisma.SortOrder
unit_price?: Prisma.SortOrder unit_price?: Prisma.SortOrder
total_amount?: Prisma.SortOrder total_amount?: Prisma.SortOrder
created_at?: Prisma.SortOrder created_at?: Prisma.SortOrder
invoice_id?: Prisma.SortOrder invoice_id?: Prisma.SortOrder
good_id?: Prisma.SortOrder good_id?: Prisma.SortOrder
service_id?: Prisma.SortOrder service_id?: Prisma.SortOrder
payload?: Prisma.SortOrder
} }
export type SalesInvoiceItemAvgOrderByAggregateInput = { export type SalesInvoiceItemAvgOrderByAggregateInput = {
count?: Prisma.SortOrder quantity?: Prisma.SortOrder
unit_price?: Prisma.SortOrder unit_price?: Prisma.SortOrder
total_amount?: Prisma.SortOrder total_amount?: Prisma.SortOrder
} }
export type SalesInvoiceItemMaxOrderByAggregateInput = { export type SalesInvoiceItemMaxOrderByAggregateInput = {
id?: Prisma.SortOrder id?: Prisma.SortOrder
count?: Prisma.SortOrder quantity?: Prisma.SortOrder
unit_type?: Prisma.SortOrder
unit_price?: Prisma.SortOrder unit_price?: Prisma.SortOrder
total_amount?: Prisma.SortOrder total_amount?: Prisma.SortOrder
created_at?: Prisma.SortOrder created_at?: Prisma.SortOrder
@@ -435,7 +472,8 @@ export type SalesInvoiceItemMaxOrderByAggregateInput = {
export type SalesInvoiceItemMinOrderByAggregateInput = { export type SalesInvoiceItemMinOrderByAggregateInput = {
id?: Prisma.SortOrder id?: Prisma.SortOrder
count?: Prisma.SortOrder quantity?: Prisma.SortOrder
unit_type?: Prisma.SortOrder
unit_price?: Prisma.SortOrder unit_price?: Prisma.SortOrder
total_amount?: Prisma.SortOrder total_amount?: Prisma.SortOrder
created_at?: Prisma.SortOrder created_at?: Prisma.SortOrder
@@ -445,7 +483,7 @@ export type SalesInvoiceItemMinOrderByAggregateInput = {
} }
export type SalesInvoiceItemSumOrderByAggregateInput = { export type SalesInvoiceItemSumOrderByAggregateInput = {
count?: Prisma.SortOrder quantity?: Prisma.SortOrder
unit_price?: Prisma.SortOrder unit_price?: Prisma.SortOrder
total_amount?: Prisma.SortOrder total_amount?: Prisma.SortOrder
} }
@@ -534,6 +572,10 @@ export type SalesInvoiceItemUncheckedUpdateManyWithoutInvoiceNestedInput = {
deleteMany?: Prisma.SalesInvoiceItemScalarWhereInput | Prisma.SalesInvoiceItemScalarWhereInput[] deleteMany?: Prisma.SalesInvoiceItemScalarWhereInput | Prisma.SalesInvoiceItemScalarWhereInput[]
} }
export type EnumUnitTypeFieldUpdateOperationsInput = {
set?: $Enums.UnitType
}
export type SalesInvoiceItemCreateNestedManyWithoutServiceInput = { export type SalesInvoiceItemCreateNestedManyWithoutServiceInput = {
create?: Prisma.XOR<Prisma.SalesInvoiceItemCreateWithoutServiceInput, Prisma.SalesInvoiceItemUncheckedCreateWithoutServiceInput> | Prisma.SalesInvoiceItemCreateWithoutServiceInput[] | Prisma.SalesInvoiceItemUncheckedCreateWithoutServiceInput[] create?: Prisma.XOR<Prisma.SalesInvoiceItemCreateWithoutServiceInput, Prisma.SalesInvoiceItemUncheckedCreateWithoutServiceInput> | Prisma.SalesInvoiceItemCreateWithoutServiceInput[] | Prisma.SalesInvoiceItemUncheckedCreateWithoutServiceInput[]
connectOrCreate?: Prisma.SalesInvoiceItemCreateOrConnectWithoutServiceInput | Prisma.SalesInvoiceItemCreateOrConnectWithoutServiceInput[] connectOrCreate?: Prisma.SalesInvoiceItemCreateOrConnectWithoutServiceInput | Prisma.SalesInvoiceItemCreateOrConnectWithoutServiceInput[]
@@ -578,22 +620,26 @@ export type SalesInvoiceItemUncheckedUpdateManyWithoutServiceNestedInput = {
export type SalesInvoiceItemCreateWithoutGoodInput = { export type SalesInvoiceItemCreateWithoutGoodInput = {
id?: string id?: string
count: runtime.Decimal | runtime.DecimalJsLike | number | string quantity: runtime.Decimal | runtime.DecimalJsLike | number | string
unit_type: $Enums.UnitType
unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string
total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Date | string created_at?: Date | string
payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
invoice: Prisma.SalesInvoiceCreateNestedOneWithoutItemsInput invoice: Prisma.SalesInvoiceCreateNestedOneWithoutItemsInput
service?: Prisma.ServiceCreateNestedOneWithoutSales_invoice_itemsInput service?: Prisma.ServiceCreateNestedOneWithoutSales_invoice_itemsInput
} }
export type SalesInvoiceItemUncheckedCreateWithoutGoodInput = { export type SalesInvoiceItemUncheckedCreateWithoutGoodInput = {
id?: string id?: string
count: runtime.Decimal | runtime.DecimalJsLike | number | string quantity: runtime.Decimal | runtime.DecimalJsLike | number | string
unit_type: $Enums.UnitType
unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string
total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Date | string created_at?: Date | string
invoice_id: string invoice_id: string
service_id: string service_id?: string | null
payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
} }
export type SalesInvoiceItemCreateOrConnectWithoutGoodInput = { export type SalesInvoiceItemCreateOrConnectWithoutGoodInput = {
@@ -627,33 +673,39 @@ export type SalesInvoiceItemScalarWhereInput = {
OR?: Prisma.SalesInvoiceItemScalarWhereInput[] OR?: Prisma.SalesInvoiceItemScalarWhereInput[]
NOT?: Prisma.SalesInvoiceItemScalarWhereInput | Prisma.SalesInvoiceItemScalarWhereInput[] NOT?: Prisma.SalesInvoiceItemScalarWhereInput | Prisma.SalesInvoiceItemScalarWhereInput[]
id?: Prisma.StringFilter<"SalesInvoiceItem"> | string id?: Prisma.StringFilter<"SalesInvoiceItem"> | string
count?: Prisma.DecimalFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string quantity?: Prisma.DecimalFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string
unit_type?: Prisma.EnumUnitTypeFilter<"SalesInvoiceItem"> | $Enums.UnitType
unit_price?: Prisma.DecimalFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string
total_amount?: Prisma.DecimalFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFilter<"SalesInvoiceItem"> | runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Prisma.DateTimeFilter<"SalesInvoiceItem"> | Date | string created_at?: Prisma.DateTimeFilter<"SalesInvoiceItem"> | Date | string
invoice_id?: Prisma.StringFilter<"SalesInvoiceItem"> | string invoice_id?: Prisma.StringFilter<"SalesInvoiceItem"> | string
good_id?: Prisma.StringFilter<"SalesInvoiceItem"> | string good_id?: Prisma.StringNullableFilter<"SalesInvoiceItem"> | string | null
service_id?: Prisma.StringFilter<"SalesInvoiceItem"> | string service_id?: Prisma.StringNullableFilter<"SalesInvoiceItem"> | string | null
payload?: Prisma.JsonNullableFilter<"SalesInvoiceItem">
} }
export type SalesInvoiceItemCreateWithoutInvoiceInput = { export type SalesInvoiceItemCreateWithoutInvoiceInput = {
id?: string id?: string
count: runtime.Decimal | runtime.DecimalJsLike | number | string quantity: runtime.Decimal | runtime.DecimalJsLike | number | string
unit_type: $Enums.UnitType
unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string
total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Date | string created_at?: Date | string
payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
good?: Prisma.GoodCreateNestedOneWithoutSales_invoice_itemsInput good?: Prisma.GoodCreateNestedOneWithoutSales_invoice_itemsInput
service?: Prisma.ServiceCreateNestedOneWithoutSales_invoice_itemsInput service?: Prisma.ServiceCreateNestedOneWithoutSales_invoice_itemsInput
} }
export type SalesInvoiceItemUncheckedCreateWithoutInvoiceInput = { export type SalesInvoiceItemUncheckedCreateWithoutInvoiceInput = {
id?: string id?: string
count: runtime.Decimal | runtime.DecimalJsLike | number | string quantity: runtime.Decimal | runtime.DecimalJsLike | number | string
unit_type: $Enums.UnitType
unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string
total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Date | string created_at?: Date | string
good_id: string good_id?: string | null
service_id: string service_id?: string | null
payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
} }
export type SalesInvoiceItemCreateOrConnectWithoutInvoiceInput = { export type SalesInvoiceItemCreateOrConnectWithoutInvoiceInput = {
@@ -684,22 +736,26 @@ export type SalesInvoiceItemUpdateManyWithWhereWithoutInvoiceInput = {
export type SalesInvoiceItemCreateWithoutServiceInput = { export type SalesInvoiceItemCreateWithoutServiceInput = {
id?: string id?: string
count: runtime.Decimal | runtime.DecimalJsLike | number | string quantity: runtime.Decimal | runtime.DecimalJsLike | number | string
unit_type: $Enums.UnitType
unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string
total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Date | string created_at?: Date | string
payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
invoice: Prisma.SalesInvoiceCreateNestedOneWithoutItemsInput invoice: Prisma.SalesInvoiceCreateNestedOneWithoutItemsInput
good?: Prisma.GoodCreateNestedOneWithoutSales_invoice_itemsInput good?: Prisma.GoodCreateNestedOneWithoutSales_invoice_itemsInput
} }
export type SalesInvoiceItemUncheckedCreateWithoutServiceInput = { export type SalesInvoiceItemUncheckedCreateWithoutServiceInput = {
id?: string id?: string
count: runtime.Decimal | runtime.DecimalJsLike | number | string quantity: runtime.Decimal | runtime.DecimalJsLike | number | string
unit_type: $Enums.UnitType
unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string
total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Date | string created_at?: Date | string
invoice_id: string invoice_id: string
good_id: string good_id?: string | null
payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
} }
export type SalesInvoiceItemCreateOrConnectWithoutServiceInput = { export type SalesInvoiceItemCreateOrConnectWithoutServiceInput = {
@@ -730,135 +786,161 @@ export type SalesInvoiceItemUpdateManyWithWhereWithoutServiceInput = {
export type SalesInvoiceItemCreateManyGoodInput = { export type SalesInvoiceItemCreateManyGoodInput = {
id?: string id?: string
count: runtime.Decimal | runtime.DecimalJsLike | number | string quantity: runtime.Decimal | runtime.DecimalJsLike | number | string
unit_type: $Enums.UnitType
unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string
total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Date | string created_at?: Date | string
invoice_id: string invoice_id: string
service_id: string service_id?: string | null
payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
} }
export type SalesInvoiceItemUpdateWithoutGoodInput = { export type SalesInvoiceItemUpdateWithoutGoodInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string id?: Prisma.StringFieldUpdateOperationsInput | string
count?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType
unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
invoice?: Prisma.SalesInvoiceUpdateOneRequiredWithoutItemsNestedInput invoice?: Prisma.SalesInvoiceUpdateOneRequiredWithoutItemsNestedInput
service?: Prisma.ServiceUpdateOneWithoutSales_invoice_itemsNestedInput service?: Prisma.ServiceUpdateOneWithoutSales_invoice_itemsNestedInput
} }
export type SalesInvoiceItemUncheckedUpdateWithoutGoodInput = { export type SalesInvoiceItemUncheckedUpdateWithoutGoodInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string id?: Prisma.StringFieldUpdateOperationsInput | string
count?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType
unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
invoice_id?: Prisma.StringFieldUpdateOperationsInput | string invoice_id?: Prisma.StringFieldUpdateOperationsInput | string
service_id?: Prisma.StringFieldUpdateOperationsInput | string service_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
} }
export type SalesInvoiceItemUncheckedUpdateManyWithoutGoodInput = { export type SalesInvoiceItemUncheckedUpdateManyWithoutGoodInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string id?: Prisma.StringFieldUpdateOperationsInput | string
count?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType
unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
invoice_id?: Prisma.StringFieldUpdateOperationsInput | string invoice_id?: Prisma.StringFieldUpdateOperationsInput | string
service_id?: Prisma.StringFieldUpdateOperationsInput | string service_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
} }
export type SalesInvoiceItemCreateManyInvoiceInput = { export type SalesInvoiceItemCreateManyInvoiceInput = {
id?: string id?: string
count: runtime.Decimal | runtime.DecimalJsLike | number | string quantity: runtime.Decimal | runtime.DecimalJsLike | number | string
unit_type: $Enums.UnitType
unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string
total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Date | string created_at?: Date | string
good_id: string good_id?: string | null
service_id: string service_id?: string | null
payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
} }
export type SalesInvoiceItemUpdateWithoutInvoiceInput = { export type SalesInvoiceItemUpdateWithoutInvoiceInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string id?: Prisma.StringFieldUpdateOperationsInput | string
count?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType
unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
good?: Prisma.GoodUpdateOneWithoutSales_invoice_itemsNestedInput good?: Prisma.GoodUpdateOneWithoutSales_invoice_itemsNestedInput
service?: Prisma.ServiceUpdateOneWithoutSales_invoice_itemsNestedInput service?: Prisma.ServiceUpdateOneWithoutSales_invoice_itemsNestedInput
} }
export type SalesInvoiceItemUncheckedUpdateWithoutInvoiceInput = { export type SalesInvoiceItemUncheckedUpdateWithoutInvoiceInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string id?: Prisma.StringFieldUpdateOperationsInput | string
count?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType
unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
good_id?: Prisma.StringFieldUpdateOperationsInput | string good_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
service_id?: Prisma.StringFieldUpdateOperationsInput | string service_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
} }
export type SalesInvoiceItemUncheckedUpdateManyWithoutInvoiceInput = { export type SalesInvoiceItemUncheckedUpdateManyWithoutInvoiceInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string id?: Prisma.StringFieldUpdateOperationsInput | string
count?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType
unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
good_id?: Prisma.StringFieldUpdateOperationsInput | string good_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
service_id?: Prisma.StringFieldUpdateOperationsInput | string service_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
} }
export type SalesInvoiceItemCreateManyServiceInput = { export type SalesInvoiceItemCreateManyServiceInput = {
id?: string id?: string
count: runtime.Decimal | runtime.DecimalJsLike | number | string quantity: runtime.Decimal | runtime.DecimalJsLike | number | string
unit_type: $Enums.UnitType
unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: runtime.Decimal | runtime.DecimalJsLike | number | string
total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Date | string created_at?: Date | string
invoice_id: string invoice_id: string
good_id: string good_id?: string | null
payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
} }
export type SalesInvoiceItemUpdateWithoutServiceInput = { export type SalesInvoiceItemUpdateWithoutServiceInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string id?: Prisma.StringFieldUpdateOperationsInput | string
count?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType
unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
invoice?: Prisma.SalesInvoiceUpdateOneRequiredWithoutItemsNestedInput invoice?: Prisma.SalesInvoiceUpdateOneRequiredWithoutItemsNestedInput
good?: Prisma.GoodUpdateOneWithoutSales_invoice_itemsNestedInput good?: Prisma.GoodUpdateOneWithoutSales_invoice_itemsNestedInput
} }
export type SalesInvoiceItemUncheckedUpdateWithoutServiceInput = { export type SalesInvoiceItemUncheckedUpdateWithoutServiceInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string id?: Prisma.StringFieldUpdateOperationsInput | string
count?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType
unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
invoice_id?: Prisma.StringFieldUpdateOperationsInput | string invoice_id?: Prisma.StringFieldUpdateOperationsInput | string
good_id?: Prisma.StringFieldUpdateOperationsInput | string good_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
} }
export type SalesInvoiceItemUncheckedUpdateManyWithoutServiceInput = { export type SalesInvoiceItemUncheckedUpdateManyWithoutServiceInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string id?: Prisma.StringFieldUpdateOperationsInput | string
count?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string quantity?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
unit_type?: Prisma.EnumUnitTypeFieldUpdateOperationsInput | $Enums.UnitType
unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string unit_price?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string total_amount?: Prisma.DecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
invoice_id?: Prisma.StringFieldUpdateOperationsInput | string invoice_id?: Prisma.StringFieldUpdateOperationsInput | string
good_id?: Prisma.StringFieldUpdateOperationsInput | string good_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
payload?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
} }
export type SalesInvoiceItemSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{ export type SalesInvoiceItemSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
id?: boolean id?: boolean
count?: boolean quantity?: boolean
unit_type?: boolean
unit_price?: boolean unit_price?: boolean
total_amount?: boolean total_amount?: boolean
created_at?: boolean created_at?: boolean
invoice_id?: boolean invoice_id?: boolean
good_id?: boolean good_id?: boolean
service_id?: boolean service_id?: boolean
payload?: boolean
invoice?: boolean | Prisma.SalesInvoiceDefaultArgs<ExtArgs> invoice?: boolean | Prisma.SalesInvoiceDefaultArgs<ExtArgs>
good?: boolean | Prisma.SalesInvoiceItem$goodArgs<ExtArgs> good?: boolean | Prisma.SalesInvoiceItem$goodArgs<ExtArgs>
service?: boolean | Prisma.SalesInvoiceItem$serviceArgs<ExtArgs> service?: boolean | Prisma.SalesInvoiceItem$serviceArgs<ExtArgs>
@@ -868,16 +950,18 @@ export type SalesInvoiceItemSelect<ExtArgs extends runtime.Types.Extensions.Inte
export type SalesInvoiceItemSelectScalar = { export type SalesInvoiceItemSelectScalar = {
id?: boolean id?: boolean
count?: boolean quantity?: boolean
unit_type?: boolean
unit_price?: boolean unit_price?: boolean
total_amount?: boolean total_amount?: boolean
created_at?: boolean created_at?: boolean
invoice_id?: boolean invoice_id?: boolean
good_id?: boolean good_id?: boolean
service_id?: boolean service_id?: boolean
payload?: boolean
} }
export type SalesInvoiceItemOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "count" | "unit_price" | "total_amount" | "created_at" | "invoice_id" | "good_id" | "service_id", ExtArgs["result"]["salesInvoiceItem"]> export type SalesInvoiceItemOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "quantity" | "unit_type" | "unit_price" | "total_amount" | "created_at" | "invoice_id" | "good_id" | "service_id" | "payload", ExtArgs["result"]["salesInvoiceItem"]>
export type SalesInvoiceItemInclude<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = { export type SalesInvoiceItemInclude<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
invoice?: boolean | Prisma.SalesInvoiceDefaultArgs<ExtArgs> invoice?: boolean | Prisma.SalesInvoiceDefaultArgs<ExtArgs>
good?: boolean | Prisma.SalesInvoiceItem$goodArgs<ExtArgs> good?: boolean | Prisma.SalesInvoiceItem$goodArgs<ExtArgs>
@@ -893,13 +977,15 @@ export type $SalesInvoiceItemPayload<ExtArgs extends runtime.Types.Extensions.In
} }
scalars: runtime.Types.Extensions.GetPayloadResult<{ scalars: runtime.Types.Extensions.GetPayloadResult<{
id: string id: string
count: runtime.Decimal quantity: runtime.Decimal
unit_type: $Enums.UnitType
unit_price: runtime.Decimal unit_price: runtime.Decimal
total_amount: runtime.Decimal total_amount: runtime.Decimal
created_at: Date created_at: Date
invoice_id: string invoice_id: string
good_id: string good_id: string | null
service_id: string service_id: string | null
payload: runtime.JsonValue | null
}, ExtArgs["result"]["salesInvoiceItem"]> }, ExtArgs["result"]["salesInvoiceItem"]>
composites: {} composites: {}
} }
@@ -1273,13 +1359,15 @@ export interface Prisma__SalesInvoiceItemClient<T, Null = never, ExtArgs extends
*/ */
export interface SalesInvoiceItemFieldRefs { export interface SalesInvoiceItemFieldRefs {
readonly id: Prisma.FieldRef<"SalesInvoiceItem", 'String'> readonly id: Prisma.FieldRef<"SalesInvoiceItem", 'String'>
readonly count: Prisma.FieldRef<"SalesInvoiceItem", 'Decimal'> readonly quantity: Prisma.FieldRef<"SalesInvoiceItem", 'Decimal'>
readonly unit_type: Prisma.FieldRef<"SalesInvoiceItem", 'UnitType'>
readonly unit_price: Prisma.FieldRef<"SalesInvoiceItem", 'Decimal'> readonly unit_price: Prisma.FieldRef<"SalesInvoiceItem", 'Decimal'>
readonly total_amount: Prisma.FieldRef<"SalesInvoiceItem", 'Decimal'> readonly total_amount: Prisma.FieldRef<"SalesInvoiceItem", 'Decimal'>
readonly created_at: Prisma.FieldRef<"SalesInvoiceItem", 'DateTime'> readonly created_at: Prisma.FieldRef<"SalesInvoiceItem", 'DateTime'>
readonly invoice_id: Prisma.FieldRef<"SalesInvoiceItem", 'String'> readonly invoice_id: Prisma.FieldRef<"SalesInvoiceItem", 'String'>
readonly good_id: Prisma.FieldRef<"SalesInvoiceItem", 'String'> readonly good_id: Prisma.FieldRef<"SalesInvoiceItem", 'String'>
readonly service_id: Prisma.FieldRef<"SalesInvoiceItem", 'String'> readonly service_id: Prisma.FieldRef<"SalesInvoiceItem", 'String'>
readonly payload: Prisma.FieldRef<"SalesInvoiceItem", 'Json'>
} }
+5 -4
View File
@@ -1,9 +1,10 @@
import { ValidationPipe, VersioningType } from '@nestjs/common' import { VersioningType } from '@nestjs/common'
import { NestFactory, Reflector } from '@nestjs/core' import { NestFactory, Reflector } from '@nestjs/core'
import { JwtService } from '@nestjs/jwt' import { JwtService } from '@nestjs/jwt'
import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger' import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger'
import { AppModule } from './app.module' import { AppModule } from './app.module'
import { PrismaExceptionFilter } from './common/filters/prisma-exception.filter' import { PrismaExceptionFilter } from './common/filters/prisma-exception.filter'
import { ValidationExceptionFilter } from './common/filters/validation-exception.filter'
import { LoggingInterceptor } from './common/interceptors/logging.interceptor' import { LoggingInterceptor } from './common/interceptors/logging.interceptor'
import { ResponseMappingInterceptor } from './common/interceptors/response-mapping.interceptor' import { ResponseMappingInterceptor } from './common/interceptors/response-mapping.interceptor'
import { JwtAuthGuard } from './modules/auth/jwt-auth.guard' import { JwtAuthGuard } from './modules/auth/jwt-auth.guard'
@@ -58,10 +59,10 @@ async function bootstrap() {
app.useGlobalInterceptors(new LoggingInterceptor(), new ResponseMappingInterceptor()) app.useGlobalInterceptors(new LoggingInterceptor(), new ResponseMappingInterceptor())
// Enable request validation and transformation globally // Enable request validation and transformation globally
app.useGlobalPipes(new ValidationPipe({ whitelist: true, transform: true })) // app.useGlobalPipes(new ValidationPipe({ whitelist: true, transform: true }))
// Register global exception filter to map Prisma and validation errors to proper HTTP codes // Register global exception filters: validation errors and Prisma errors
app.useGlobalFilters(new PrismaExceptionFilter()) app.useGlobalFilters(new ValidationExceptionFilter(), new PrismaExceptionFilter())
app.useGlobalGuards(new JwtAuthGuard(app.get(JwtService), app.get(Reflector))) app.useGlobalGuards(new JwtAuthGuard(app.get(JwtService), app.get(Reflector)))
+12
View File
@@ -0,0 +1,12 @@
import { Controller, Get } from '@nestjs/common'
import { EnumsService } from './enums.service'
@Controller('enums')
export class EnumsController {
constructor(private readonly enumsService: EnumsService) {}
@Get('gold_karat')
async getGoldKarat() {
return this.enumsService.getEnumValues('GoldKarat')
}
}
+10
View File
@@ -0,0 +1,10 @@
import { Module } from '@nestjs/common'
import { EnumsController } from './enums.controller'
import { EnumsService } from './enums.service'
@Module({
controllers: [EnumsController],
providers: [EnumsService],
exports: [EnumsService],
})
export class EnumsModule {}
+17
View File
@@ -0,0 +1,17 @@
import { Injectable } from '@nestjs/common'
import { GoldKarat } from '../../common/enums/enums'
import { ResponseMapper } from '../../common/response/response-mapper'
@Injectable()
export class EnumsService {
getAllEnums() {
return {
GoldKarat: Object.values(GoldKarat).filter(value => typeof value === 'string'),
}
}
getEnumValues(enumName: string) {
const enums = this.getAllEnums()
return ResponseMapper.list(enums[enumName] || [])
}
}
@@ -3,7 +3,7 @@ import { reqTokenPayload } from '../auth/current-user.decorator'
import { CreateGoodCategoryDto } from './dto/create-good-category.dto' import { CreateGoodCategoryDto } from './dto/create-good-category.dto'
import { GoodCategoriesService } from './good-categories.service' import { GoodCategoriesService } from './good-categories.service'
@Controller('good-categories') @Controller('good_categories')
export class GoodCategoriesController { export class GoodCategoriesController {
constructor(private readonly goodCategoriesService: GoodCategoriesService) {} constructor(private readonly goodCategoriesService: GoodCategoriesService) {}
@@ -37,6 +37,7 @@ export class GoodCategoriesService {
account_id: '', account_id: '',
}, },
}) })
return ResponseMapper.create(category) return ResponseMapper.create(category)
} }
} }
+3
View File
@@ -52,6 +52,7 @@ export class GoodsService {
}, },
}, },
} }
console.log(dataToCreate)
const good = await this.prisma.good.create({ const good = await this.prisma.good.create({
data: dataToCreate, data: dataToCreate,
@@ -61,6 +62,8 @@ export class GoodsService {
deleted_at: true, deleted_at: true,
}, },
}) })
console.log(good)
return ResponseMapper.create(good) return ResponseMapper.create(good)
} }
} }
@@ -1,11 +1,9 @@
import { ApiProperty, PartialType } from '@nestjs/swagger' import { ApiProperty, PartialType } from '@nestjs/swagger'
import { IsNumber, IsOptional, IsString } from 'class-validator' import { IsEnum, IsNumber, IsObject, IsOptional, IsString } from 'class-validator'
import type { SaleInvoicePayload } from '../../../common/interfaces/sale-invoice-payload'
import { UnitType } from '../../../generated/prisma/enums'
export class CreateSalesInvoiceItemDto { export class CreateSalesInvoiceItemDto {
@IsNumber()
@ApiProperty()
count: number
@IsNumber() @IsNumber()
@ApiProperty() @ApiProperty()
unit_price: number unit_price: number
@@ -27,6 +25,19 @@ export class CreateSalesInvoiceItemDto {
@IsString() @IsString()
@ApiProperty({ required: false }) @ApiProperty({ required: false })
service_id?: string service_id?: string
@IsNumber()
@ApiProperty({ required: true, default: 1 })
quantity: number
@IsEnum(UnitType)
@ApiProperty({ enum: Object.values(UnitType) })
unit_type: UnitType
@IsOptional()
@IsObject()
@ApiProperty({ required: false, default: {} })
payload?: SaleInvoicePayload
} }
export class UpdateSalesInvoiceItemDto extends PartialType(CreateSalesInvoiceItemDto) {} export class UpdateSalesInvoiceItemDto extends PartialType(CreateSalesInvoiceItemDto) {}
@@ -1,7 +1,7 @@
import { Body, Controller, Get, Param, Post } from '@nestjs/common' import { Body, Controller, Get, Param, Post } from '@nestjs/common'
import { SalesInvoiceItemsService } from './sales-invoice-items.service' import { SalesInvoiceItemsService } from './sales-invoice-items.service'
@Controller('sales-invoice-items') @Controller('sales_invoice_items')
export class SalesInvoiceItemsController { export class SalesInvoiceItemsController {
constructor(private readonly salesInvoiceItemsService: SalesInvoiceItemsService) {} constructor(private readonly salesInvoiceItemsService: SalesInvoiceItemsService) {}
@@ -1,5 +1,6 @@
import { ApiProperty, PartialType } from '@nestjs/swagger' import { ApiProperty, PartialType } from '@nestjs/swagger'
import { IsNumber, IsOptional, IsString } from 'class-validator' import { ArrayMinSize, IsNumber, IsOptional, IsString } from 'class-validator'
import { CreateSalesInvoiceItemDto } from '../../sales-invoice-items/dto/create-sales-invoice-item.dto'
export class CreateSalesInvoiceDto { export class CreateSalesInvoiceDto {
@IsString() @IsString()
@@ -7,18 +8,17 @@ export class CreateSalesInvoiceDto {
code: string code: string
@IsNumber() @IsNumber()
@ApiProperty() @ApiProperty({ required: true, default: 0 })
total_amount: number total_amount: number
@IsOptional()
@IsString()
@ApiProperty({ required: false })
description?: string
@IsOptional() @IsOptional()
@IsString() @IsString()
@ApiProperty({ required: false }) @ApiProperty({ required: false })
customer_id?: string customer_id?: string
@ApiProperty()
@ArrayMinSize(1)
items: CreateSalesInvoiceItemDto[]
} }
export class UpdateSalesInvoiceDto extends PartialType(CreateSalesInvoiceDto) {} export class UpdateSalesInvoiceDto extends PartialType(CreateSalesInvoiceDto) {}
@@ -1,7 +1,7 @@
import { Body, Controller, Get, Param, Post } from '@nestjs/common' import { Body, Controller, Get, Param, Post } from '@nestjs/common'
import { SalesInvoicesService } from './sales-invoices.service' import { SalesInvoicesService } from './sales-invoices.service'
@Controller('sales-invoices') @Controller('sales_invoices')
export class SalesInvoicesController { export class SalesInvoicesController {
constructor(private readonly salesInvoicesService: SalesInvoicesService) {} constructor(private readonly salesInvoicesService: SalesInvoicesService) {}
@@ -1,7 +1,7 @@
import { Body, Controller, Get, Param, Post } from '@nestjs/common' import { Body, Controller, Get, Param, Post } from '@nestjs/common'
import { ServiceCategoriesService } from './service-categories.service' import { ServiceCategoriesService } from './service-categories.service'
@Controller('service-categories') @Controller('service_categories')
export class ServiceCategoriesController { export class ServiceCategoriesController {
constructor(private readonly serviceCategoriesService: ServiceCategoriesService) {} constructor(private readonly serviceCategoriesService: ServiceCategoriesService) {}