feat: add stock keeping units management

- Created migration to drop `type` column from `stock_keeping_units` table.
- Added `Guild` model to Prisma schema.
- Implemented `BusinessActivitiesQueryService` for querying business activities.
- Developed `GoodsSharedService` for handling goods creation and updates.
- Introduced DTOs for creating and updating stock keeping units.
- Created controller and service for managing stock keeping units.
- Implemented response DTOs for stock keeping units service.
- Established module for stock keeping units management.
This commit is contained in:
2026-05-07 20:30:24 +03:30
parent 658496320b
commit fbe7230865
77 changed files with 2065 additions and 1846 deletions
+90 -90
View File
@@ -646,34 +646,6 @@ export type BusinessActivityUpdateOneWithoutGoodsNestedInput = {
update?: Prisma.XOR<Prisma.XOR<Prisma.BusinessActivityUpdateToOneWithWhereWithoutGoodsInput, Prisma.BusinessActivityUpdateWithoutGoodsInput>, Prisma.BusinessActivityUncheckedUpdateWithoutGoodsInput>
}
export type BusinessActivityCreateNestedOneWithoutCustomer_individualsInput = {
create?: Prisma.XOR<Prisma.BusinessActivityCreateWithoutCustomer_individualsInput, Prisma.BusinessActivityUncheckedCreateWithoutCustomer_individualsInput>
connectOrCreate?: Prisma.BusinessActivityCreateOrConnectWithoutCustomer_individualsInput
connect?: Prisma.BusinessActivityWhereUniqueInput
}
export type BusinessActivityUpdateOneRequiredWithoutCustomer_individualsNestedInput = {
create?: Prisma.XOR<Prisma.BusinessActivityCreateWithoutCustomer_individualsInput, Prisma.BusinessActivityUncheckedCreateWithoutCustomer_individualsInput>
connectOrCreate?: Prisma.BusinessActivityCreateOrConnectWithoutCustomer_individualsInput
upsert?: Prisma.BusinessActivityUpsertWithoutCustomer_individualsInput
connect?: Prisma.BusinessActivityWhereUniqueInput
update?: Prisma.XOR<Prisma.XOR<Prisma.BusinessActivityUpdateToOneWithWhereWithoutCustomer_individualsInput, Prisma.BusinessActivityUpdateWithoutCustomer_individualsInput>, Prisma.BusinessActivityUncheckedUpdateWithoutCustomer_individualsInput>
}
export type BusinessActivityCreateNestedOneWithoutCustomer_legalsInput = {
create?: Prisma.XOR<Prisma.BusinessActivityCreateWithoutCustomer_legalsInput, Prisma.BusinessActivityUncheckedCreateWithoutCustomer_legalsInput>
connectOrCreate?: Prisma.BusinessActivityCreateOrConnectWithoutCustomer_legalsInput
connect?: Prisma.BusinessActivityWhereUniqueInput
}
export type BusinessActivityUpdateOneRequiredWithoutCustomer_legalsNestedInput = {
create?: Prisma.XOR<Prisma.BusinessActivityCreateWithoutCustomer_legalsInput, Prisma.BusinessActivityUncheckedCreateWithoutCustomer_legalsInput>
connectOrCreate?: Prisma.BusinessActivityCreateOrConnectWithoutCustomer_legalsInput
upsert?: Prisma.BusinessActivityUpsertWithoutCustomer_legalsInput
connect?: Prisma.BusinessActivityWhereUniqueInput
update?: Prisma.XOR<Prisma.XOR<Prisma.BusinessActivityUpdateToOneWithWhereWithoutCustomer_legalsInput, Prisma.BusinessActivityUpdateWithoutCustomer_legalsInput>, Prisma.BusinessActivityUncheckedUpdateWithoutCustomer_legalsInput>
}
export type BusinessActivityCreateNestedManyWithoutGuildInput = {
create?: Prisma.XOR<Prisma.BusinessActivityCreateWithoutGuildInput, Prisma.BusinessActivityUncheckedCreateWithoutGuildInput> | Prisma.BusinessActivityCreateWithoutGuildInput[] | Prisma.BusinessActivityUncheckedCreateWithoutGuildInput[]
connectOrCreate?: Prisma.BusinessActivityCreateOrConnectWithoutGuildInput | Prisma.BusinessActivityCreateOrConnectWithoutGuildInput[]
@@ -716,6 +688,34 @@ export type BusinessActivityUncheckedUpdateManyWithoutGuildNestedInput = {
deleteMany?: Prisma.BusinessActivityScalarWhereInput | Prisma.BusinessActivityScalarWhereInput[]
}
export type BusinessActivityCreateNestedOneWithoutCustomer_individualsInput = {
create?: Prisma.XOR<Prisma.BusinessActivityCreateWithoutCustomer_individualsInput, Prisma.BusinessActivityUncheckedCreateWithoutCustomer_individualsInput>
connectOrCreate?: Prisma.BusinessActivityCreateOrConnectWithoutCustomer_individualsInput
connect?: Prisma.BusinessActivityWhereUniqueInput
}
export type BusinessActivityUpdateOneRequiredWithoutCustomer_individualsNestedInput = {
create?: Prisma.XOR<Prisma.BusinessActivityCreateWithoutCustomer_individualsInput, Prisma.BusinessActivityUncheckedCreateWithoutCustomer_individualsInput>
connectOrCreate?: Prisma.BusinessActivityCreateOrConnectWithoutCustomer_individualsInput
upsert?: Prisma.BusinessActivityUpsertWithoutCustomer_individualsInput
connect?: Prisma.BusinessActivityWhereUniqueInput
update?: Prisma.XOR<Prisma.XOR<Prisma.BusinessActivityUpdateToOneWithWhereWithoutCustomer_individualsInput, Prisma.BusinessActivityUpdateWithoutCustomer_individualsInput>, Prisma.BusinessActivityUncheckedUpdateWithoutCustomer_individualsInput>
}
export type BusinessActivityCreateNestedOneWithoutCustomer_legalsInput = {
create?: Prisma.XOR<Prisma.BusinessActivityCreateWithoutCustomer_legalsInput, Prisma.BusinessActivityUncheckedCreateWithoutCustomer_legalsInput>
connectOrCreate?: Prisma.BusinessActivityCreateOrConnectWithoutCustomer_legalsInput
connect?: Prisma.BusinessActivityWhereUniqueInput
}
export type BusinessActivityUpdateOneRequiredWithoutCustomer_legalsNestedInput = {
create?: Prisma.XOR<Prisma.BusinessActivityCreateWithoutCustomer_legalsInput, Prisma.BusinessActivityUncheckedCreateWithoutCustomer_legalsInput>
connectOrCreate?: Prisma.BusinessActivityCreateOrConnectWithoutCustomer_legalsInput
upsert?: Prisma.BusinessActivityUpsertWithoutCustomer_legalsInput
connect?: Prisma.BusinessActivityWhereUniqueInput
update?: Prisma.XOR<Prisma.XOR<Prisma.BusinessActivityUpdateToOneWithWhereWithoutCustomer_legalsInput, Prisma.BusinessActivityUpdateWithoutCustomer_legalsInput>, Prisma.BusinessActivityUncheckedUpdateWithoutCustomer_legalsInput>
}
export type BusinessActivityCreateWithoutLicense_activationInput = {
id?: string
economic_code: string
@@ -1146,6 +1146,68 @@ export type BusinessActivityUncheckedUpdateWithoutGoodsInput = {
customer_legals?: Prisma.CustomerLegalUncheckedUpdateManyWithoutBusiness_activityNestedInput
}
export type BusinessActivityCreateWithoutGuildInput = {
id?: string
economic_code: string
name: string
fiscal_id: string
partner_token: string
invoice_number_sequence?: runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Date | string
updated_at?: Date | string
consumer: Prisma.ConsumerCreateNestedOneWithoutBusiness_activitiesInput
license_activation?: Prisma.LicenseActivationCreateNestedOneWithoutBusiness_activityInput
complexes?: Prisma.ComplexCreateNestedManyWithoutBusiness_activityInput
permission_businesses?: Prisma.PermissionBusinessCreateNestedManyWithoutBusinessInput
goods?: Prisma.GoodCreateNestedManyWithoutBusiness_activityInput
customer_individuals?: Prisma.CustomerIndividualCreateNestedManyWithoutBusiness_activityInput
customer_legals?: Prisma.CustomerLegalCreateNestedManyWithoutBusiness_activityInput
}
export type BusinessActivityUncheckedCreateWithoutGuildInput = {
id?: string
economic_code: string
name: string
fiscal_id: string
partner_token: string
invoice_number_sequence?: runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Date | string
updated_at?: Date | string
consumer_id: string
license_activation?: Prisma.LicenseActivationUncheckedCreateNestedOneWithoutBusiness_activityInput
complexes?: Prisma.ComplexUncheckedCreateNestedManyWithoutBusiness_activityInput
permission_businesses?: Prisma.PermissionBusinessUncheckedCreateNestedManyWithoutBusinessInput
goods?: Prisma.GoodUncheckedCreateNestedManyWithoutBusiness_activityInput
customer_individuals?: Prisma.CustomerIndividualUncheckedCreateNestedManyWithoutBusiness_activityInput
customer_legals?: Prisma.CustomerLegalUncheckedCreateNestedManyWithoutBusiness_activityInput
}
export type BusinessActivityCreateOrConnectWithoutGuildInput = {
where: Prisma.BusinessActivityWhereUniqueInput
create: Prisma.XOR<Prisma.BusinessActivityCreateWithoutGuildInput, Prisma.BusinessActivityUncheckedCreateWithoutGuildInput>
}
export type BusinessActivityCreateManyGuildInputEnvelope = {
data: Prisma.BusinessActivityCreateManyGuildInput | Prisma.BusinessActivityCreateManyGuildInput[]
skipDuplicates?: boolean
}
export type BusinessActivityUpsertWithWhereUniqueWithoutGuildInput = {
where: Prisma.BusinessActivityWhereUniqueInput
update: Prisma.XOR<Prisma.BusinessActivityUpdateWithoutGuildInput, Prisma.BusinessActivityUncheckedUpdateWithoutGuildInput>
create: Prisma.XOR<Prisma.BusinessActivityCreateWithoutGuildInput, Prisma.BusinessActivityUncheckedCreateWithoutGuildInput>
}
export type BusinessActivityUpdateWithWhereUniqueWithoutGuildInput = {
where: Prisma.BusinessActivityWhereUniqueInput
data: Prisma.XOR<Prisma.BusinessActivityUpdateWithoutGuildInput, Prisma.BusinessActivityUncheckedUpdateWithoutGuildInput>
}
export type BusinessActivityUpdateManyWithWhereWithoutGuildInput = {
where: Prisma.BusinessActivityScalarWhereInput
data: Prisma.XOR<Prisma.BusinessActivityUpdateManyMutationInput, Prisma.BusinessActivityUncheckedUpdateManyWithoutGuildInput>
}
export type BusinessActivityCreateWithoutCustomer_individualsInput = {
id?: string
economic_code: string
@@ -1322,68 +1384,6 @@ export type BusinessActivityUncheckedUpdateWithoutCustomer_legalsInput = {
customer_individuals?: Prisma.CustomerIndividualUncheckedUpdateManyWithoutBusiness_activityNestedInput
}
export type BusinessActivityCreateWithoutGuildInput = {
id?: string
economic_code: string
name: string
fiscal_id: string
partner_token: string
invoice_number_sequence?: runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Date | string
updated_at?: Date | string
consumer: Prisma.ConsumerCreateNestedOneWithoutBusiness_activitiesInput
license_activation?: Prisma.LicenseActivationCreateNestedOneWithoutBusiness_activityInput
complexes?: Prisma.ComplexCreateNestedManyWithoutBusiness_activityInput
permission_businesses?: Prisma.PermissionBusinessCreateNestedManyWithoutBusinessInput
goods?: Prisma.GoodCreateNestedManyWithoutBusiness_activityInput
customer_individuals?: Prisma.CustomerIndividualCreateNestedManyWithoutBusiness_activityInput
customer_legals?: Prisma.CustomerLegalCreateNestedManyWithoutBusiness_activityInput
}
export type BusinessActivityUncheckedCreateWithoutGuildInput = {
id?: string
economic_code: string
name: string
fiscal_id: string
partner_token: string
invoice_number_sequence?: runtime.Decimal | runtime.DecimalJsLike | number | string
created_at?: Date | string
updated_at?: Date | string
consumer_id: string
license_activation?: Prisma.LicenseActivationUncheckedCreateNestedOneWithoutBusiness_activityInput
complexes?: Prisma.ComplexUncheckedCreateNestedManyWithoutBusiness_activityInput
permission_businesses?: Prisma.PermissionBusinessUncheckedCreateNestedManyWithoutBusinessInput
goods?: Prisma.GoodUncheckedCreateNestedManyWithoutBusiness_activityInput
customer_individuals?: Prisma.CustomerIndividualUncheckedCreateNestedManyWithoutBusiness_activityInput
customer_legals?: Prisma.CustomerLegalUncheckedCreateNestedManyWithoutBusiness_activityInput
}
export type BusinessActivityCreateOrConnectWithoutGuildInput = {
where: Prisma.BusinessActivityWhereUniqueInput
create: Prisma.XOR<Prisma.BusinessActivityCreateWithoutGuildInput, Prisma.BusinessActivityUncheckedCreateWithoutGuildInput>
}
export type BusinessActivityCreateManyGuildInputEnvelope = {
data: Prisma.BusinessActivityCreateManyGuildInput | Prisma.BusinessActivityCreateManyGuildInput[]
skipDuplicates?: boolean
}
export type BusinessActivityUpsertWithWhereUniqueWithoutGuildInput = {
where: Prisma.BusinessActivityWhereUniqueInput
update: Prisma.XOR<Prisma.BusinessActivityUpdateWithoutGuildInput, Prisma.BusinessActivityUncheckedUpdateWithoutGuildInput>
create: Prisma.XOR<Prisma.BusinessActivityCreateWithoutGuildInput, Prisma.BusinessActivityUncheckedCreateWithoutGuildInput>
}
export type BusinessActivityUpdateWithWhereUniqueWithoutGuildInput = {
where: Prisma.BusinessActivityWhereUniqueInput
data: Prisma.XOR<Prisma.BusinessActivityUpdateWithoutGuildInput, Prisma.BusinessActivityUncheckedUpdateWithoutGuildInput>
}
export type BusinessActivityUpdateManyWithWhereWithoutGuildInput = {
where: Prisma.BusinessActivityScalarWhereInput
data: Prisma.XOR<Prisma.BusinessActivityUpdateManyMutationInput, Prisma.BusinessActivityUncheckedUpdateManyWithoutGuildInput>
}
export type BusinessActivityCreateManyConsumerInput = {
id?: string
economic_code: string