updated build types

This commit is contained in:
2025-11-17 23:36:15 +03:00
parent f870c2e62e
commit 6a5acd28db
27 changed files with 551 additions and 87 deletions

View File

@@ -1,7 +1,6 @@
import { Prop } from '@nestjs/mongoose';
import { randomUUID } from 'crypto';
import { Field } from '@nestjs/graphql';
import { ObjectType } from '@nestjs/graphql';
import { ObjectType, InputType, Field, ID } from '@nestjs/graphql';
@ObjectType({ isAbstract: true })
export class Base {
@@ -19,24 +18,16 @@ export class Base {
updatedAt: Date;
@Field()
@Prop({ default: () => new Date(Date.now()) })
expiryStarts: Date;
@Prop({ default: false, required: false })
isConfirmed?: boolean;
@Field()
@Prop({ default: () => new Date('2099-12-31') })
expiryEnds: Date;
@Prop({ default: false, required: false })
deleted?: boolean;
@Field()
@Prop({ default: false })
isConfirmed: boolean;
@Field()
@Prop({ default: false })
deleted: boolean;
@Field()
@Prop({ default: true })
active: boolean;
@Prop({ default: true, required: false })
active?: boolean;
@Field()
@Prop({ default: randomUUID })
@@ -55,12 +46,12 @@ export class Base {
confirmedCredentialsToken: string;
@Field()
@Prop({ default: false })
isNotificationSend: boolean;
@Prop({ default: false, required: false })
isNotificationSend?: boolean;
@Field()
@Prop({ default: false })
isEmailSend: boolean;
@Prop({ default: false, required: false })
isEmailSend?: boolean;
@Field()
@Prop({ default: 0 })
@@ -73,4 +64,61 @@ export class Base {
@Field()
@Prop({ default: 0 })
replicationId: number;
@Field()
@Prop({ default: () => new Date(Date.now()), required: false })
expiryStarts?: Date;
@Field()
@Prop({ default: () => new Date('2099-12-31'), required: false })
expiryEnds?: Date;
}
@ObjectType({ isAbstract: true })
export class ExpiryBase {
@Field()
@Prop({ default: () => new Date(Date.now()), required: false })
expiryStarts?: Date;
@Field()
@Prop({ default: () => new Date('2099-12-31'), required: false })
expiryEnds?: Date;
}
@InputType()
export class ExpiryBaseInput {
@Field({ nullable: true, defaultValue: new Date(Date.now()).toISOString() })
expiryStarts?: Date;
@Field({ nullable: false, defaultValue: new Date('2099-12-31').toISOString() })
expiryEnds?: Date;
}
@ObjectType({ isAbstract: true })
export class ChangableBase {
@Field()
@Prop({ default: () => new Date(Date.now()), required: false })
expiryStarts?: Date;
@Field()
@Prop({ default: () => new Date('2099-12-31'), required: false })
expiryEnds?: Date;
@Field()
@Prop({ default: false, required: false })
isConfirmed?: boolean;
@Field()
@Prop({ default: false, required: false })
deleted?: boolean;
@Field()
@Prop({ default: true, required: false })
active?: boolean;
}

View File

@@ -0,0 +1,32 @@
import { ObjectType, Field, ID } from '@nestjs/graphql';
import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
import { Document } from 'mongoose';
import { Base } from '@/models/base.model';
@ObjectType()
@Schema({ timestamps: true })
export class BuildTypes extends Base {
@Field(() => ID)
readonly _id: string;
@Field()
@Prop({ required: true })
type: string;
@Field()
@Prop({ required: true })
token: string;
@Field()
@Prop({ required: true })
typeToken: string;
@Field({ nullable: true })
@Prop({ required: false, default: '' })
description: string;
}
export type BuildTypesDocument = BuildTypes & Document;
export const BuildTypesSchema = SchemaFactory.createForClass(BuildTypes);

View File

@@ -30,6 +30,7 @@ export class BuildIban {
@ObjectType()
export class BuildResponsible {
@Field(() => ID)
@Prop({ type: Types.ObjectId, ref: Company.name, required: true })
company: Types.ObjectId;
@@ -41,6 +42,7 @@ export class BuildResponsible {
@ObjectType()
export class BuildInfo {
@Field()
@Prop({ required: true })
govAddressCode: string;
@@ -104,11 +106,13 @@ export class BuildInfo {
@Field(() => Int)
@Prop({ required: true })
managementRoomId: number;
}
@ObjectType()
@Schema({ timestamps: true })
export class Build extends Base {
@Field(() => ID)
@Prop({ type: Types.ObjectId, ref: 'BuildType', required: true })
buildType: Types.ObjectId;
@@ -140,6 +144,7 @@ export class Build extends Base {
@Field(() => [BuildResponsible], { nullable: true })
@Prop({ type: [BuildResponsible] })
responsibles?: BuildResponsible[];
}
export type BuildDocument = Build & Document;

View File

@@ -18,7 +18,7 @@ export class Person extends Base {
@Field()
surname: string;
@Prop({ required: true })
@Prop({ required: false })
@Field()
middleName: string;
@@ -26,11 +26,11 @@ export class Person extends Base {
@Field()
sexCode: string;
@Prop({ required: true })
@Prop({ required: false })
@Field()
personRef: string;
@Prop({ required: true })
@Prop({ required: false })
@Field()
personTag: string;
@@ -62,7 +62,7 @@ export class Person extends Base {
@Field()
taxNo: string;
@Prop({ required: true })
@Prop({ required: false })
@Field()
birthname: string;
}