@things-factory/attachment-base 7.0.84 → 7.0.85

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,7 +16,7 @@ let AttachmentQuery = class AttachmentQuery {
16
16
  params,
17
17
  domain,
18
18
  alias: 'attachment',
19
- searchables: ['name', 'description']
19
+ searchables: ['id', 'name', 'description', 'tags']
20
20
  }).addSelect([
21
21
  'attachment.domain',
22
22
  'attachment.id',
@@ -1 +1 @@
1
- {"version":3,"file":"attachment-query.js","sourceRoot":"","sources":["../../../server/service/attachment/attachment-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { In } from 'typeorm'\nimport { Arg, Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\n\nimport { AttachmentList } from '../'\nimport { Attachment } from './attachment'\n\n@Resolver(Attachment)\nexport class AttachmentQuery {\n @Directive('@privilege(category: \"attachment\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => AttachmentList)\n async attachments(\n @Ctx() context: ResolverContext,\n @Args(type => ListParam) params: ListParam\n ): Promise<AttachmentList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: await getRepository(Attachment),\n params,\n domain,\n alias: 'attachment',\n searchables: ['name', 'description']\n }).addSelect([\n 'attachment.domain',\n 'attachment.id',\n 'attachment.name',\n 'attachment.path',\n 'attachment.size',\n 'attachment.mimetype',\n 'attachment.encoding',\n 'attachment.category',\n 'attachment.updatedAt',\n 'attachment.updater',\n 'attachment.createdAt',\n 'attachment.creator'\n ])\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"attachment\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => Attachment)\n async attachment(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Attachment> {\n const { domain } = context.state\n\n return await getRepository(Attachment).findOne({\n select: [\n 'domain',\n 'id',\n 'name',\n 'path',\n 'size',\n 'mimetype',\n 'encoding',\n 'category',\n 'updatedAt',\n 'updater',\n 'createdAt',\n 'creator'\n ],\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, id },\n relations: ['domain', 'creator', 'updater']\n })\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() attachment: Attachment) {\n return await getRepository(Domain).findOneBy({\n id: attachment.domainId\n })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() attachment: Attachment): Promise<User> {\n return await getRepository(User).findOneBy({\n id: attachment.updaterId\n })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() attachment: Attachment): Promise<User> {\n return await getRepository(User).findOneBy({\n id: attachment.creatorId\n })\n }\n}\n"]}
1
+ {"version":3,"file":"attachment-query.js","sourceRoot":"","sources":["../../../server/service/attachment/attachment-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { In } from 'typeorm'\nimport { Arg, Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\n\nimport { AttachmentList } from '../'\nimport { Attachment } from './attachment'\n\n@Resolver(Attachment)\nexport class AttachmentQuery {\n @Directive('@privilege(category: \"attachment\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => AttachmentList)\n async attachments(\n @Ctx() context: ResolverContext,\n @Args(type => ListParam) params: ListParam\n ): Promise<AttachmentList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: await getRepository(Attachment),\n params,\n domain,\n alias: 'attachment',\n searchables: ['id', 'name', 'description', 'tags']\n }).addSelect([\n 'attachment.domain',\n 'attachment.id',\n 'attachment.name',\n 'attachment.path',\n 'attachment.size',\n 'attachment.mimetype',\n 'attachment.encoding',\n 'attachment.category',\n 'attachment.updatedAt',\n 'attachment.updater',\n 'attachment.createdAt',\n 'attachment.creator'\n ])\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"attachment\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => Attachment)\n async attachment(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Attachment> {\n const { domain } = context.state\n\n return await getRepository(Attachment).findOne({\n select: [\n 'domain',\n 'id',\n 'name',\n 'path',\n 'size',\n 'mimetype',\n 'encoding',\n 'category',\n 'updatedAt',\n 'updater',\n 'createdAt',\n 'creator'\n ],\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, id },\n relations: ['domain', 'creator', 'updater']\n })\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() attachment: Attachment) {\n return await getRepository(Domain).findOneBy({\n id: attachment.domainId\n })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() attachment: Attachment): Promise<User> {\n return await getRepository(User).findOneBy({\n id: attachment.updaterId\n })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() attachment: Attachment): Promise<User> {\n return await getRepository(User).findOneBy({\n id: attachment.creatorId\n })\n }\n}\n"]}
@@ -14,6 +14,7 @@ export declare class NewAttachment {
14
14
  description: string;
15
15
  refType: string;
16
16
  refBy: string;
17
+ tags?: string[];
17
18
  }
18
19
  export declare class AttachmentPatch {
19
20
  name: string;
@@ -24,4 +25,5 @@ export declare class AttachmentPatch {
24
25
  file: FileUpload;
25
26
  refType: string;
26
27
  refBy: string;
28
+ tags?: string[];
27
29
  }
@@ -57,6 +57,10 @@ tslib_1.__decorate([
57
57
  (0, type_graphql_1.Field)({ nullable: true }),
58
58
  tslib_1.__metadata("design:type", String)
59
59
  ], NewAttachment.prototype, "refBy", void 0);
60
+ tslib_1.__decorate([
61
+ (0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
62
+ tslib_1.__metadata("design:type", Array)
63
+ ], NewAttachment.prototype, "tags", void 0);
60
64
  exports.NewAttachment = NewAttachment = tslib_1.__decorate([
61
65
  (0, type_graphql_1.InputType)()
62
66
  ], NewAttachment);
@@ -95,6 +99,10 @@ tslib_1.__decorate([
95
99
  (0, type_graphql_1.Field)({ nullable: true }),
96
100
  tslib_1.__metadata("design:type", String)
97
101
  ], AttachmentPatch.prototype, "refBy", void 0);
102
+ tslib_1.__decorate([
103
+ (0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
104
+ tslib_1.__metadata("design:type", Array)
105
+ ], AttachmentPatch.prototype, "tags", void 0);
98
106
  exports.AttachmentPatch = AttachmentPatch = tslib_1.__decorate([
99
107
  (0, type_graphql_1.InputType)()
100
108
  ], AttachmentPatch);
@@ -1 +1 @@
1
- {"version":3,"file":"attachment-types.js","sourceRoot":"","sources":["../../../server/service/attachment/attachment-types.ts"],"names":[],"mappings":";;;;AACA,+FAA2D;AAC3D,+CAAgE;AAEhE,iDAAiD;AAEjD,6CAAyC;AAGlC,IAAM,cAAc,GAApB,MAAM,cAAc;CAM1B,CAAA;AANY,wCAAc;AAEzB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,uBAAU,CAAC,CAAC;;6CACT;AAGnB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;6CACN;yBALF,cAAc;IAD1B,IAAA,yBAAU,GAAE;GACA,cAAc,CAM1B;AAGM,IAAM,SAAS,GAAf,MAAM,SAAS;CAMrB,CAAA;AANY,8BAAS;AAEpB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;;sCACX;AAGX;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,CAAC;;yCACd;oBALA,SAAS;IADrB,IAAA,yBAAU,GAAE;GACA,SAAS,CAMrB;AAGM,IAAM,aAAa,GAAnB,MAAM,aAAa;CAezB,CAAA;AAfY,sCAAa;AAExB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACV;AAGhB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,0BAAa,CAAC;;2CACb;AAGhB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACP;AAGnB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CACX;AAGf;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4CACb;wBAdF,aAAa;IADzB,IAAA,wBAAS,GAAE;GACC,aAAa,CAezB;AAGM,IAAM,eAAe,GAArB,MAAM,eAAe;CAwB3B,CAAA;AAxBY,0CAAe;AAE1B;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACd;AAGZ;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDACP;AAGnB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACV;AAGhB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACV;AAGhB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACV;AAGhB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,0BAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACjC;AAGhB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACX;AAGf;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CACb;0BAvBF,eAAe;IAD3B,IAAA,wBAAS,GAAE;GACC,eAAe,CAwB3B","sourcesContent":["import type { FileUpload } from 'graphql-upload/GraphQLUpload.js'\nimport GraphQLUpload from 'graphql-upload/GraphQLUpload.js'\nimport { Field, InputType, Int, ObjectType } from 'type-graphql'\n\nimport { ScalarAny } from '@things-factory/shell'\n\nimport { Attachment } from './attachment'\n\n@ObjectType()\nexport class AttachmentList {\n @Field(type => [Attachment])\n items: Attachment[]\n\n @Field(type => Int)\n total: number\n}\n\n@ObjectType()\nexport class UploadURL {\n @Field(type => String)\n url: string\n\n @Field(type => ScalarAny)\n fields: any\n}\n\n@InputType()\nexport class NewAttachment {\n @Field({ nullable: true })\n category: string\n\n @Field(type => GraphQLUpload)\n file: FileUpload\n\n @Field({ nullable: true })\n description: string\n\n @Field({ nullable: true })\n refType: string\n\n @Field({ nullable: true })\n refBy: string\n}\n\n@InputType()\nexport class AttachmentPatch {\n @Field({ nullable: true })\n name: string\n\n @Field({ nullable: true })\n description: string\n\n @Field({ nullable: true })\n mimetype: string\n\n @Field({ nullable: true })\n encoding: string\n\n @Field({ nullable: true })\n category: string\n\n @Field(type => GraphQLUpload, { nullable: true })\n file: FileUpload\n\n @Field({ nullable: true })\n refType: string\n\n @Field({ nullable: true })\n refBy: string\n}\n"]}
1
+ {"version":3,"file":"attachment-types.js","sourceRoot":"","sources":["../../../server/service/attachment/attachment-types.ts"],"names":[],"mappings":";;;;AACA,+FAA2D;AAC3D,+CAAgE;AAEhE,iDAA+D;AAE/D,6CAAyC;AAGlC,IAAM,cAAc,GAApB,MAAM,cAAc;CAM1B,CAAA;AANY,wCAAc;AAEzB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,uBAAU,CAAC,CAAC;;6CACT;AAGnB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;6CACN;yBALF,cAAc;IAD1B,IAAA,yBAAU,GAAE;GACA,cAAc,CAM1B;AAGM,IAAM,SAAS,GAAf,MAAM,SAAS;CAMrB,CAAA;AANY,8BAAS;AAEpB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;;sCACX;AAGX;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,CAAC;;yCACd;oBALA,SAAS;IADrB,IAAA,yBAAU,GAAE;GACA,SAAS,CAMrB;AAGM,IAAM,aAAa,GAAnB,MAAM,aAAa;CAkBzB,CAAA;AAlBY,sCAAa;AAExB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACV;AAGhB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,0BAAa,CAAC;;2CACb;AAGhB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACP;AAGnB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CACX;AAGf;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4CACb;AAGb;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACjC;wBAjBJ,aAAa;IADzB,IAAA,wBAAS,GAAE;GACC,aAAa,CAkBzB;AAGM,IAAM,eAAe,GAArB,MAAM,eAAe;CA2B3B,CAAA;AA3BY,0CAAe;AAE1B;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACd;AAGZ;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDACP;AAGnB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACV;AAGhB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACV;AAGhB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACV;AAGhB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,0BAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACjC;AAGhB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACX;AAGf;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CACb;AAGb;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACjC;0BA1BJ,eAAe;IAD3B,IAAA,wBAAS,GAAE;GACC,eAAe,CA2B3B","sourcesContent":["import type { FileUpload } from 'graphql-upload/GraphQLUpload.js'\nimport GraphQLUpload from 'graphql-upload/GraphQLUpload.js'\nimport { Field, InputType, Int, ObjectType } from 'type-graphql'\n\nimport { ScalarAny, ScalarObject } from '@things-factory/shell'\n\nimport { Attachment } from './attachment'\n\n@ObjectType()\nexport class AttachmentList {\n @Field(type => [Attachment])\n items: Attachment[]\n\n @Field(type => Int)\n total: number\n}\n\n@ObjectType()\nexport class UploadURL {\n @Field(type => String)\n url: string\n\n @Field(type => ScalarAny)\n fields: any\n}\n\n@InputType()\nexport class NewAttachment {\n @Field({ nullable: true })\n category: string\n\n @Field(type => GraphQLUpload)\n file: FileUpload\n\n @Field({ nullable: true })\n description: string\n\n @Field({ nullable: true })\n refType: string\n\n @Field({ nullable: true })\n refBy: string\n\n @Field(type => ScalarObject, { nullable: true })\n tags?: string[]\n}\n\n@InputType()\nexport class AttachmentPatch {\n @Field({ nullable: true })\n name: string\n\n @Field({ nullable: true })\n description: string\n\n @Field({ nullable: true })\n mimetype: string\n\n @Field({ nullable: true })\n encoding: string\n\n @Field({ nullable: true })\n category: string\n\n @Field(type => GraphQLUpload, { nullable: true })\n file: FileUpload\n\n @Field({ nullable: true })\n refType: string\n\n @Field({ nullable: true })\n refBy: string\n\n @Field(type => ScalarObject, { nullable: true })\n tags?: string[]\n}\n"]}
@@ -14,6 +14,7 @@ export declare class Attachment {
14
14
  path?: string;
15
15
  size?: string;
16
16
  contents?: Buffer;
17
+ tags?: string[];
17
18
  createdAt?: Date;
18
19
  updatedAt?: Date;
19
20
  creator?: User;
@@ -89,6 +89,11 @@ tslib_1.__decorate([
89
89
  }),
90
90
  tslib_1.__metadata("design:type", Buffer)
91
91
  ], Attachment.prototype, "contents", void 0);
92
+ tslib_1.__decorate([
93
+ (0, typeorm_1.Column)('simple-json', { nullable: true, default: null }),
94
+ (0, type_graphql_1.Field)(type => shell_1.ScalarObject, { nullable: true }),
95
+ tslib_1.__metadata("design:type", Array)
96
+ ], Attachment.prototype, "tags", void 0);
92
97
  tslib_1.__decorate([
93
98
  (0, typeorm_1.CreateDateColumn)(),
94
99
  (0, type_graphql_1.Field)(),
@@ -1 +1 @@
1
- {"version":3,"file":"attachment.js","sourceRoot":"","sources":["../../../server/service/attachment/attachment.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, ID, ObjectType } from 'type-graphql'\nimport {\n Column,\n CreateDateColumn,\n Entity,\n Index,\n ManyToOne,\n PrimaryGeneratedColumn,\n RelationId,\n UpdateDateColumn\n} from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain } from '@things-factory/shell'\n\nimport { ATTACHMENT_PATH } from '../../attachment-const'\nimport { config } from '@things-factory/env'\n\nconst ORMCONFIG = config.get('ormconfig', {})\nconst DATABASE_TYPE = ORMCONFIG.type\n\n@Entity()\n@Index('ix_attachment_0', (attachment: Attachment) => [attachment.domain, attachment.name], { unique: false })\n@Index('ix_attachment_1', (attachment: Attachment) => [attachment.domain, attachment.category, attachment.name], {\n unique: false\n})\n@Index('ix_attachment_2', (attachment: Attachment) => [attachment.domain, attachment.refBy], {\n unique: false\n})\n@Index('ix_attachment_3', (attachment: Attachment) => [attachment.domain, attachment.refType, attachment.refBy], {\n unique: false\n})\n@ObjectType()\nexport class Attachment {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id?: string\n\n @ManyToOne(type => Domain, { nullable: false })\n @Field(type => Domain)\n domain?: Domain\n\n @RelationId((attachment: Attachment) => attachment.domain)\n domainId?: string\n\n @Column()\n @Field()\n name?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n description?: string\n\n @Column()\n @Field()\n mimetype?: string\n\n @Column()\n @Field()\n encoding?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n category?: string\n\n @Column({ nullable: true, default: '' })\n @Field({ nullable: true })\n refType?: string = ''\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n refBy?: string\n\n @Column()\n @Field()\n path?: string\n\n @Column()\n @Field()\n size?: string\n\n @Column({\n nullable: true,\n type:\n DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'\n ? 'longblob'\n : DATABASE_TYPE == 'postgres'\n ? 'bytea'\n : 'blob'\n })\n contents?: Buffer\n\n @CreateDateColumn()\n @Field()\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field()\n updatedAt?: Date\n\n @ManyToOne(type => User)\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((attachment: Attachment) => attachment.creator)\n creatorId?: string\n\n @ManyToOne(type => User)\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((attachment: Attachment) => attachment.updater)\n updaterId?: string\n\n @Field()\n get fullpath(): string {\n return `/${ATTACHMENT_PATH}/${this.path}`\n }\n}\n"]}
1
+ {"version":3,"file":"attachment.js","sourceRoot":"","sources":["../../../server/service/attachment/attachment.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, ID, ObjectType } from 'type-graphql'\nimport {\n Column,\n CreateDateColumn,\n Entity,\n Index,\n ManyToOne,\n PrimaryGeneratedColumn,\n RelationId,\n UpdateDateColumn\n} from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, ScalarObject } from '@things-factory/shell'\n\nimport { ATTACHMENT_PATH } from '../../attachment-const'\nimport { config } from '@things-factory/env'\n\nconst ORMCONFIG = config.get('ormconfig', {})\nconst DATABASE_TYPE = ORMCONFIG.type\n\n@Entity()\n@Index('ix_attachment_0', (attachment: Attachment) => [attachment.domain, attachment.name], { unique: false })\n@Index('ix_attachment_1', (attachment: Attachment) => [attachment.domain, attachment.category, attachment.name], {\n unique: false\n})\n@Index('ix_attachment_2', (attachment: Attachment) => [attachment.domain, attachment.refBy], {\n unique: false\n})\n@Index('ix_attachment_3', (attachment: Attachment) => [attachment.domain, attachment.refType, attachment.refBy], {\n unique: false\n})\n@ObjectType()\nexport class Attachment {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id?: string\n\n @ManyToOne(type => Domain, { nullable: false })\n @Field(type => Domain)\n domain?: Domain\n\n @RelationId((attachment: Attachment) => attachment.domain)\n domainId?: string\n\n @Column()\n @Field()\n name?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n description?: string\n\n @Column()\n @Field()\n mimetype?: string\n\n @Column()\n @Field()\n encoding?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n category?: string\n\n @Column({ nullable: true, default: '' })\n @Field({ nullable: true })\n refType?: string = ''\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n refBy?: string\n\n @Column()\n @Field()\n path?: string\n\n @Column()\n @Field()\n size?: string\n\n @Column({\n nullable: true,\n type:\n DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'\n ? 'longblob'\n : DATABASE_TYPE == 'postgres'\n ? 'bytea'\n : 'blob'\n })\n contents?: Buffer\n\n @Column('simple-json', { nullable: true, default: null })\n @Field(type => ScalarObject, { nullable: true })\n tags?: string[]\n\n @CreateDateColumn()\n @Field()\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field()\n updatedAt?: Date\n\n @ManyToOne(type => User)\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((attachment: Attachment) => attachment.creator)\n creatorId?: string\n\n @ManyToOne(type => User)\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((attachment: Attachment) => attachment.updater)\n updaterId?: string\n\n @Field()\n get fullpath(): string {\n return `/${ATTACHMENT_PATH}/${this.path}`\n }\n}\n"]}