@puzzlin/models 4.32.0 → 4.32.2

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.
@@ -1,8 +1,9 @@
1
1
  import { NodeInput } from '../../../../shared';
2
- import { AssetTagEnum, AssetVisibilityEnum } from '@puzzlin/enums';
2
+ import { AppLocaleEnum, AssetTagEnum, AssetVisibilityEnum } from '@puzzlin/enums';
3
3
  export declare class UpdateAssetInput extends NodeInput {
4
4
  creditsPrice?: number;
5
5
  isPurchaseRequired?: boolean;
6
+ locale?: AppLocaleEnum | null;
6
7
  tags?: AssetTagEnum[];
7
8
  visibility?: AssetVisibilityEnum;
8
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"update-asset.input.d.ts","sourceRoot":"","sources":["../../../../../src/apps/platform/assets/inputs/update-asset.input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAGnE,qBACa,gBAAiB,SAAQ,SAAS;IAI7C,YAAY,CAAC,EAAE,MAAM,CAAC;IAKtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAK7B,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC;IAKtB,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAClC"}
1
+ {"version":3,"file":"update-asset.input.d.ts","sourceRoot":"","sources":["../../../../../src/apps/platform/assets/inputs/update-asset.input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAGlF,qBACa,gBAAiB,SAAQ,SAAS;IAI7C,YAAY,CAAC,EAAE,MAAM,CAAC;IAKtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAK7B,MAAM,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAK9B,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC;IAKtB,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAClC"}
@@ -29,6 +29,12 @@ __decorate([
29
29
  }),
30
30
  __metadata("design:type", Boolean)
31
31
  ], UpdateAssetInput.prototype, "isPurchaseRequired", void 0);
32
+ __decorate([
33
+ (0, graphql_1.Field)(() => enums_1.AppLocaleEnum, {
34
+ nullable: true,
35
+ }),
36
+ __metadata("design:type", Object)
37
+ ], UpdateAssetInput.prototype, "locale", void 0);
32
38
  __decorate([
33
39
  (0, graphql_1.Field)(() => [enums_1.AssetTagEnum], {
34
40
  nullable: true,
@@ -1 +1 @@
1
- {"version":3,"file":"update-asset.input.js","sourceRoot":"","sources":["../../../../../src/apps/platform/assets/inputs/update-asset.input.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAqC;AACrC,6CAAmD;AACnD,0CAAmE;AACnE,qDAA2D;AAGpD,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,kBAAS;CAoB9C,CAAA;AApBY,4CAAgB;AAI3B;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,0CAAwB,EAAE;QACrC,QAAQ,EAAE,IAAI;KACf,CAAC;;sDACoB;AAKtB;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,OAAO,EAAE;QACpB,QAAQ,EAAE,IAAI;KACf,CAAC;;4DAC2B;AAK7B;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,CAAC,oBAAY,CAAC,EAAE;QAC3B,QAAQ,EAAE,IAAI;KACf,CAAC;;8CACoB;AAKtB;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,2BAAmB,EAAE;QAChC,QAAQ,EAAE,IAAI;KACf,CAAC;;oDAC+B;2BAnBtB,gBAAgB;IAD5B,IAAA,mBAAS,GAAE;GACC,gBAAgB,CAoB5B","sourcesContent":["import { NodeInput } from '@/shared';\nimport { Field, InputType } from '@nestjs/graphql';\nimport { AssetTagEnum, AssetVisibilityEnum } from '@puzzlin/enums';\nimport { NonNegativeFloatResolver } from 'graphql-scalars';\n\n@InputType()\nexport class UpdateAssetInput extends NodeInput {\n @Field(() => NonNegativeFloatResolver, {\n nullable: true,\n })\n creditsPrice?: number;\n\n @Field(() => Boolean, {\n nullable: true,\n })\n isPurchaseRequired?: boolean;\n\n @Field(() => [AssetTagEnum], {\n nullable: true,\n })\n tags?: AssetTagEnum[];\n\n @Field(() => AssetVisibilityEnum, {\n nullable: true,\n })\n visibility?: AssetVisibilityEnum;\n}\n"]}
1
+ {"version":3,"file":"update-asset.input.js","sourceRoot":"","sources":["../../../../../src/apps/platform/assets/inputs/update-asset.input.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAqC;AACrC,6CAAmD;AACnD,0CAAkF;AAClF,qDAA2D;AAGpD,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,kBAAS;CAyB9C,CAAA;AAzBY,4CAAgB;AAI3B;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,0CAAwB,EAAE;QACrC,QAAQ,EAAE,IAAI;KACf,CAAC;;sDACoB;AAKtB;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,OAAO,EAAE;QACpB,QAAQ,EAAE,IAAI;KACf,CAAC;;4DAC2B;AAK7B;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,qBAAa,EAAE;QAC1B,QAAQ,EAAE,IAAI;KACf,CAAC;;gDAC4B;AAK9B;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,CAAC,oBAAY,CAAC,EAAE;QAC3B,QAAQ,EAAE,IAAI;KACf,CAAC;;8CACoB;AAKtB;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,2BAAmB,EAAE;QAChC,QAAQ,EAAE,IAAI;KACf,CAAC;;oDAC+B;2BAxBtB,gBAAgB;IAD5B,IAAA,mBAAS,GAAE;GACC,gBAAgB,CAyB5B","sourcesContent":["import { NodeInput } from '@/shared';\nimport { Field, InputType } from '@nestjs/graphql';\nimport { AppLocaleEnum, AssetTagEnum, AssetVisibilityEnum } from '@puzzlin/enums';\nimport { NonNegativeFloatResolver } from 'graphql-scalars';\n\n@InputType()\nexport class UpdateAssetInput extends NodeInput {\n @Field(() => NonNegativeFloatResolver, {\n nullable: true,\n })\n creditsPrice?: number;\n\n @Field(() => Boolean, {\n nullable: true,\n })\n isPurchaseRequired?: boolean;\n\n @Field(() => AppLocaleEnum, {\n nullable: true,\n })\n locale?: AppLocaleEnum | null;\n\n @Field(() => [AssetTagEnum], {\n nullable: true,\n })\n tags?: AssetTagEnum[];\n\n @Field(() => AssetVisibilityEnum, {\n nullable: true,\n })\n visibility?: AssetVisibilityEnum;\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { CreditLedgerEntry } from '../../../../apps/platform/credits/objects';
2
2
  import { User } from '../../../../apps/platform/users/objects';
3
3
  import { Node, Timestamp } from '../../../../shared';
4
- import { AssetTagEnum, AssetTypeEnum, AssetVisibilityEnum } from '@puzzlin/enums';
4
+ import { AppLocaleEnum, AssetTagEnum, AssetTypeEnum, AssetVisibilityEnum } from '@puzzlin/enums';
5
5
  import { AssetAccess } from './asset-access.object';
6
6
  declare const Asset_base: import("@nestjs/common").Type<Node & Timestamp>;
7
7
  export declare class Asset extends Asset_base {
@@ -12,6 +12,7 @@ export declare class Asset extends Asset_base {
12
12
  creditsPrice: number;
13
13
  id: string;
14
14
  isPurchaseRequired: boolean;
15
+ locale?: AppLocaleEnum | null;
15
16
  owner?: User;
16
17
  ownerId: string;
17
18
  tags?: AssetTagEnum[];
@@ -1 +1 @@
1
- {"version":3,"file":"asset.object.d.ts","sourceRoot":"","sources":["../../../../../src/apps/platform/assets/objects/asset.object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAGlF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;;AAEpD,qBAGa,KAAM,SAAQ,UAAiC;IAK1D,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IAIzB,mBAAmB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAO1C,SAAS,CAAC,EAAE,IAAI,CAAC;IAKjB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,YAAY,EAAE,MAAM,CAAC;IAKrB,EAAE,EAAE,MAAM,CAAC;IAGX,kBAAkB,EAAE,OAAO,CAAC;IAY5B,KAAK,CAAC,EAAE,IAAI,CAAC;IAGb,OAAO,EAAE,MAAM,CAAC;IAKhB,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC;IAGtB,IAAI,EAAE,aAAa,CAAC;IAGpB,UAAU,EAAE,mBAAmB,CAAC;CACjC"}
1
+ {"version":3,"file":"asset.object.d.ts","sourceRoot":"","sources":["../../../../../src/apps/platform/assets/objects/asset.object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAGjG,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;;AAEpD,qBAGa,KAAM,SAAQ,UAAiC;IAK1D,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IAIzB,mBAAmB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAO1C,SAAS,CAAC,EAAE,IAAI,CAAC;IAKjB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,YAAY,EAAE,MAAM,CAAC;IAKrB,EAAE,EAAE,MAAM,CAAC;IAGX,kBAAkB,EAAE,OAAO,CAAC;IAK5B,MAAM,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAY9B,KAAK,CAAC,EAAE,IAAI,CAAC;IAGb,OAAO,EAAE,MAAM,CAAC;IAKhB,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC;IAGtB,IAAI,EAAE,aAAa,CAAC;IAGpB,UAAU,EAAE,mBAAmB,CAAC;CACjC"}
@@ -61,6 +61,12 @@ __decorate([
61
61
  (0, graphql_1.Field)(() => Boolean),
62
62
  __metadata("design:type", Boolean)
63
63
  ], Asset.prototype, "isPurchaseRequired", void 0);
64
+ __decorate([
65
+ (0, graphql_1.Field)(() => enums_1.AppLocaleEnum, {
66
+ nullable: true,
67
+ }),
68
+ __metadata("design:type", Object)
69
+ ], Asset.prototype, "locale", void 0);
64
70
  __decorate([
65
71
  (0, graphql_1.Field)(() => objects_2.User, {
66
72
  description: 'User who owns the asset.',
@@ -1 +1 @@
1
- {"version":3,"file":"asset.object.js","sourceRoot":"","sources":["../../../../../src/apps/platform/assets/objects/asset.object.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6DAAoE;AACpE,2DAAqD;AACrD,qCAA2C;AAC3C,6CAA0E;AAC1E,0CAAkF;AAClF,yDAAyC;AACzC,qDAA2D;AAC3D,+DAAoD;AAK7C,IAAM,KAAK,GAAX,MAAM,KAAM,SAAQ,IAAA,0BAAgB,EAAC,aAAI,EAAE,kBAAS,CAAC;CA2D3D,CAAA;AA3DY,sBAAK;AAKhB;IAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,CAAC,iCAAW,CAAC,EAAE;QAC1B,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,iCAAW,CAAC;;uCACC;AAIzB;IAFC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,CAAC,2BAAiB,CAAC,CAAC;IAChC,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,2BAAiB,CAAC;;kDACY;AAO1C;IALC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,cAAI,EAAE;QACjB,WAAW,EAAE,wCAAwC;QACrD,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,cAAI,CAAC;8BACL,cAAI;wCAAC;AAKjB;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,YAAE,EAAE;QACf,QAAQ,EAAE,IAAI;KACf,CAAC;;0CACmB;AAGrB;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,0CAAwB,CAAC;;2CACjB;AAKrB;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,YAAE,EAAE;QACf,WAAW,EAAE,8BAA8B;KAC5C,CAAC;;iCACS;AAGX;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,OAAO,CAAC;;iDACO;AAY5B;IAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,cAAI,EAAE;QACjB,WAAW,EAAE,0BAA0B;KACxC,CAAC;IACD,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,cAAI,CAAC;8BACT,cAAI;oCAAC;AAGb;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,YAAE,CAAC;;sCACA;AAKhB;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,CAAC,oBAAY,CAAC,EAAE;QAC3B,QAAQ,EAAE,IAAI;KACf,CAAC;;mCACoB;AAGtB;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,qBAAa,CAAC;;mCACP;AAGpB;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,2BAAmB,CAAC;;yCACD;gBA1DrB,KAAK;IAHjB,IAAA,oBAAU,EAAC;QACV,UAAU,EAAE,aAAI;KACjB,CAAC;GACW,KAAK,CA2DjB","sourcesContent":["import { CreditLedgerEntry } from '@/apps/platform/credits/objects';\nimport { User } from '@/apps/platform/users/objects';\nimport { Node, Timestamp } from '@/shared';\nimport { Field, ID, IntersectionType, ObjectType } from '@nestjs/graphql';\nimport { AssetTagEnum, AssetTypeEnum, AssetVisibilityEnum } from '@puzzlin/enums';\nimport { Type } from 'class-transformer';\nimport { NonNegativeFloatResolver } from 'graphql-scalars';\nimport { AssetAccess } from './asset-access.object';\n\n@ObjectType({\n implements: Node,\n})\nexport class Asset extends IntersectionType(Node, Timestamp) {\n @Field(() => [AssetAccess], {\n nullable: true,\n })\n @Type(() => AssetAccess)\n accesses?: AssetAccess[];\n\n @Field(() => [CreditLedgerEntry])\n @Type(() => CreditLedgerEntry)\n creditLedgerEntries?: CreditLedgerEntry[];\n\n @Field(() => User, {\n description: 'User who created the asset. Immutable.',\n nullable: true,\n })\n @Type(() => User)\n createdBy?: User;\n\n @Field(() => ID, {\n nullable: true,\n })\n createdById?: string;\n\n @Field(() => NonNegativeFloatResolver)\n creditsPrice: number;\n\n @Field(() => ID, {\n description: 'ID shared with owning asset.',\n })\n id: string;\n\n @Field(() => Boolean)\n isPurchaseRequired: boolean;\n\n // NOTE: AssetPurchase isn't required in an MVP, but it could help reporting/auditing on top of the credit ledger.\n // @Field(() => AssetPurchase, {\n // nullable: true\n // })\n // purchase?: AssetPurchase;\n\n @Field(() => User, {\n description: 'User who owns the asset.',\n })\n @Type(() => User)\n owner?: User;\n\n @Field(() => ID)\n ownerId: string;\n\n @Field(() => [AssetTagEnum], {\n nullable: true,\n })\n tags?: AssetTagEnum[];\n\n @Field(() => AssetTypeEnum)\n type: AssetTypeEnum;\n\n @Field(() => AssetVisibilityEnum)\n visibility: AssetVisibilityEnum;\n}\n"]}
1
+ {"version":3,"file":"asset.object.js","sourceRoot":"","sources":["../../../../../src/apps/platform/assets/objects/asset.object.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6DAAoE;AACpE,2DAAqD;AACrD,qCAA2C;AAC3C,6CAA0E;AAC1E,0CAAiG;AACjG,yDAAyC;AACzC,qDAA2D;AAC3D,+DAAoD;AAK7C,IAAM,KAAK,GAAX,MAAM,KAAM,SAAQ,IAAA,0BAAgB,EAAC,aAAI,EAAE,kBAAS,CAAC;CAgE3D,CAAA;AAhEY,sBAAK;AAKhB;IAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,CAAC,iCAAW,CAAC,EAAE;QAC1B,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,iCAAW,CAAC;;uCACC;AAIzB;IAFC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,CAAC,2BAAiB,CAAC,CAAC;IAChC,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,2BAAiB,CAAC;;kDACY;AAO1C;IALC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,cAAI,EAAE;QACjB,WAAW,EAAE,wCAAwC;QACrD,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,cAAI,CAAC;8BACL,cAAI;wCAAC;AAKjB;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,YAAE,EAAE;QACf,QAAQ,EAAE,IAAI;KACf,CAAC;;0CACmB;AAGrB;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,0CAAwB,CAAC;;2CACjB;AAKrB;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,YAAE,EAAE;QACf,WAAW,EAAE,8BAA8B;KAC5C,CAAC;;iCACS;AAGX;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,OAAO,CAAC;;iDACO;AAK5B;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,qBAAa,EAAE;QAC1B,QAAQ,EAAE,IAAI;KACf,CAAC;;qCAC4B;AAY9B;IAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,cAAI,EAAE;QACjB,WAAW,EAAE,0BAA0B;KACxC,CAAC;IACD,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,cAAI,CAAC;8BACT,cAAI;oCAAC;AAGb;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,YAAE,CAAC;;sCACA;AAKhB;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,CAAC,oBAAY,CAAC,EAAE;QAC3B,QAAQ,EAAE,IAAI;KACf,CAAC;;mCACoB;AAGtB;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,qBAAa,CAAC;;mCACP;AAGpB;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,2BAAmB,CAAC;;yCACD;gBA/DrB,KAAK;IAHjB,IAAA,oBAAU,EAAC;QACV,UAAU,EAAE,aAAI;KACjB,CAAC;GACW,KAAK,CAgEjB","sourcesContent":["import { CreditLedgerEntry } from '@/apps/platform/credits/objects';\nimport { User } from '@/apps/platform/users/objects';\nimport { Node, Timestamp } from '@/shared';\nimport { Field, ID, IntersectionType, ObjectType } from '@nestjs/graphql';\nimport { AppLocaleEnum, AssetTagEnum, AssetTypeEnum, AssetVisibilityEnum } from '@puzzlin/enums';\nimport { Type } from 'class-transformer';\nimport { NonNegativeFloatResolver } from 'graphql-scalars';\nimport { AssetAccess } from './asset-access.object';\n\n@ObjectType({\n implements: Node,\n})\nexport class Asset extends IntersectionType(Node, Timestamp) {\n @Field(() => [AssetAccess], {\n nullable: true,\n })\n @Type(() => AssetAccess)\n accesses?: AssetAccess[];\n\n @Field(() => [CreditLedgerEntry])\n @Type(() => CreditLedgerEntry)\n creditLedgerEntries?: CreditLedgerEntry[];\n\n @Field(() => User, {\n description: 'User who created the asset. Immutable.',\n nullable: true,\n })\n @Type(() => User)\n createdBy?: User;\n\n @Field(() => ID, {\n nullable: true,\n })\n createdById?: string;\n\n @Field(() => NonNegativeFloatResolver)\n creditsPrice: number;\n\n @Field(() => ID, {\n description: 'ID shared with owning asset.',\n })\n id: string;\n\n @Field(() => Boolean)\n isPurchaseRequired: boolean;\n\n @Field(() => AppLocaleEnum, {\n nullable: true,\n })\n locale?: AppLocaleEnum | null;\n\n // NOTE: AssetPurchase isn't required in an MVP, but it could help reporting/auditing on top of the credit ledger.\n // @Field(() => AssetPurchase, {\n // nullable: true\n // })\n // purchase?: AssetPurchase;\n\n @Field(() => User, {\n description: 'User who owns the asset.',\n })\n @Type(() => User)\n owner?: User;\n\n @Field(() => ID)\n ownerId: string;\n\n @Field(() => [AssetTagEnum], {\n nullable: true,\n })\n tags?: AssetTagEnum[];\n\n @Field(() => AssetTypeEnum)\n type: AssetTypeEnum;\n\n @Field(() => AssetVisibilityEnum)\n visibility: AssetVisibilityEnum;\n}\n"]}