taxtank-core 0.30.48 → 0.30.49

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,5 +1,5 @@
1
1
  import { __decorate } from "tslib";
2
- import { Transform, Type } from 'class-transformer';
2
+ import { Expose, plainToClass, Transform, Type } from 'class-transformer';
3
3
  import { User } from '../user';
4
4
  import { HoldingType } from './holding-type';
5
5
  import { AppFile } from '../file';
@@ -39,17 +39,6 @@ export class Holding extends AbstractModel {
39
39
  const yearTime = 1000 * 60 * 60 * 24 * 365;
40
40
  return (new FinancialYear().startDate.getTime() - this.date.getTime()) > yearTime;
41
41
  }
42
- /**
43
- * in holding we are interested in 3 main categories: stock/crypto/other
44
- */
45
- get category() {
46
- if (this.type) {
47
- return this.type.isOther() ? null : this.type.category;
48
- }
49
- else {
50
- return HoldingTypeCategoryEnum.STOCK;
51
- }
52
- }
53
42
  isSold() {
54
43
  return this.currentQuantity === 0;
55
44
  }
@@ -70,4 +59,22 @@ __decorate([
70
59
  Type(() => HoldingSale),
71
60
  Transform(({ value }) => new Collection(value))
72
61
  ], Holding.prototype, "sales", void 0);
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvaG9sZGluZy9ob2xkaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDL0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXZELE1BQU0sT0FBTyxPQUFRLFNBQVEsYUFBYTtJQUExQzs7UUFDRSxjQUFTLEdBQUcsS0FBSyxDQUFDO0lBcUVwQixDQUFDO0lBOUNDOztPQUVHO0lBQ0gsSUFBSSxhQUFhO1FBQ2YscUVBQXFFO1FBQ3JFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQyxPQUFPLENBQUMsQ0FBQztTQUNWO1FBRUQsT0FBTyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsY0FBYyxDQUFDLFdBQXdCO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNILG9CQUFvQixDQUFDLFdBQXdCO1FBQzNDLE9BQU8sV0FBVyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0sUUFBUSxHQUFXLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUM7UUFFbkQsT0FBTyxDQUFDLElBQUksYUFBYSxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUM7SUFDcEYsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxRQUFRO1FBQ1YsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFBO1NBQ3ZEO2FBQU07WUFDTCxPQUFPLHVCQUF1QixDQUFDLEtBQUssQ0FBQztTQUN0QztJQUNILENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsZUFBZSxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0NBQ0Y7QUE3REc7SUFERCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO3FDQUNKO0FBR1g7SUFERCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO3FDQUNKO0FBR1g7SUFERCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDO3FDQUNKO0FBR2xCO0lBREQsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQztxQ0FDSjtBQUlkO0lBRkQsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQztJQUN2QixTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBYyxLQUFLLENBQUMsQ0FBQztzQ0FDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2Zvcm0sIFR5cGUgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vdXNlcic7XG5pbXBvcnQgeyBIb2xkaW5nVHlwZSB9IGZyb20gJy4vaG9sZGluZy10eXBlJztcbmltcG9ydCB7IEFwcEZpbGUgfSBmcm9tICcuLi9maWxlJztcbmltcG9ydCB7IEhvbGRpbmdTYWxlIH0gZnJvbSAnLi9ob2xkaW5nLXNhbGUnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IEFic3RyYWN0TW9kZWwgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMnO1xuaW1wb3J0IHsgRmluYW5jaWFsWWVhciB9IGZyb20gJy4uL2ZpbmFuY2lhbC15ZWFyJztcbmltcG9ydCB7SG9sZGluZ1R5cGVDYXRlZ29yeUVudW19IGZyb20gJy4uLy4uL2RiL0VudW1zJztcblxuZXhwb3J0IGNsYXNzIEhvbGRpbmcgZXh0ZW5kcyBBYnN0cmFjdE1vZGVsIHtcbiAgaXNUYXhGcmVlID0gZmFsc2U7XG4gIHF1YW50aXR5OiBudW1iZXI7XG4gIGN1cnJlbnRRdWFudGl0eTogbnVtYmVyO1xuICBvd25lcnNoaXBQZXJjZW50PzogbnVtYmVyO1xuICBwcmljZTogbnVtYmVyO1xuICBmZWU6IG51bWJlcjtcblxuICBAVHlwZSgoKSA9PiBEYXRlKVxuICAgIGRhdGU6IERhdGU7XG5cbiAgQFR5cGUoKCkgPT4gVXNlcilcbiAgICB1c2VyOiBVc2VyO1xuXG4gIEBUeXBlKCgpID0+IEhvbGRpbmdUeXBlKVxuICAgIHR5cGU6IEhvbGRpbmdUeXBlO1xuXG4gIEBUeXBlKCgpID0+IEFwcEZpbGUpXG4gICAgZmlsZTogQXBwRmlsZTtcblxuICBAVHlwZSgoKSA9PiBIb2xkaW5nU2FsZSlcbiAgQFRyYW5zZm9ybSgoeyB2YWx1ZSB9KSA9PiBuZXcgQ29sbGVjdGlvbjxIb2xkaW5nU2FsZT4odmFsdWUpKVxuICAgIHNhbGVzOiBDb2xsZWN0aW9uPEhvbGRpbmdTYWxlPjtcblxuICAvKipcbiAgICogR2V0IHRvdGFsIHB1cmNoYXNpbmcgcHJpY2VcbiAgICovXG4gIGdldCBwdXJjaGFzZVZhbHVlKCk6IG51bWJlciB7XG4gICAgLy8gUHJpY2UgYW5kIGVudGl0eSBtYXkgYmUgZW1wdHkgd2hlbiB3ZSB1c2UgSG9sZGluZ0Zvcm0uY3VycmVudFZhbHVlXG4gICAgaWYgKCF0aGlzLnByaWNlIHx8ICF0aGlzLnF1YW50aXR5KSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5wcmljZSAqIHRoaXMucXVhbnRpdHk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGN1cnJlbnQgbWFya2V0IHByaWNlXG4gICAqL1xuICBnZXRNYXJrZXRWYWx1ZShob2xkaW5nVHlwZTogSG9sZGluZ1R5cGUpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnF1YW50aXR5ICogaG9sZGluZ1R5cGUucHJpY2U7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHBlcmNlbnQgZGlmZmVyZW5jZSBiZXR3ZWVuIGN1cnJlbnQgYW5kIGJ1eSBwcmljZVxuICAgKi9cbiAgZ2V0R3Jvd3RoQ29lZmZpY2llbnQoaG9sZGluZ1R5cGU6IEhvbGRpbmdUeXBlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gaG9sZGluZ1R5cGUucHJpY2UgLyB0aGlzLnByaWNlIC0gMTtcbiAgfVxuXG4gIGhlbGRNb3JlWWVhcigpOiBib29sZWFuIHtcbiAgICBjb25zdCB5ZWFyVGltZTogbnVtYmVyID0gMTAwMCAqIDYwICogNjAgKiAyNCAqIDM2NTtcblxuICAgIHJldHVybiAobmV3IEZpbmFuY2lhbFllYXIoKS5zdGFydERhdGUuZ2V0VGltZSgpIC0gdGhpcy5kYXRlLmdldFRpbWUoKSkgPiB5ZWFyVGltZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBpbiBob2xkaW5nIHdlIGFyZSBpbnRlcmVzdGVkIGluIDMgbWFpbiBjYXRlZ29yaWVzOiBzdG9jay9jcnlwdG8vb3RoZXJcbiAgICovXG4gIGdldCBjYXRlZ29yeSgpOiBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bSB7XG4gICAgaWYgKHRoaXMudHlwZSkge1xuICAgICAgcmV0dXJuIHRoaXMudHlwZS5pc090aGVyKCkgPyBudWxsIDogdGhpcy50eXBlLmNhdGVnb3J5XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bS5TVE9DSztcbiAgICB9XG4gIH1cblxuICBpc1NvbGQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFF1YW50aXR5ID09PSAwO1xuICB9XG59XG4iXX0=
62
+ __decorate([
63
+ Transform(({ obj }) => {
64
+ const type = plainToClass(HoldingType, obj.type);
65
+ if (type) {
66
+ return type.isOther() ? null : type.category;
67
+ }
68
+ if (obj.category) {
69
+ return [
70
+ HoldingTypeCategoryEnum.COLLECTIBLE,
71
+ HoldingTypeCategoryEnum.UNLISTED_STOCK,
72
+ HoldingTypeCategoryEnum.UNLISTED_UNIT,
73
+ HoldingTypeCategoryEnum.OTHER
74
+ ].includes(obj.category) ? null : obj.category;
75
+ }
76
+ return HoldingTypeCategoryEnum.STOCK;
77
+ }, { toClassOnly: true }),
78
+ Expose({ toClassOnly: true })
79
+ ], Holding.prototype, "category", void 0);
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvaG9sZGluZy9ob2xkaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMvQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNsQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsTUFBTSxPQUFPLE9BQVEsU0FBUSxhQUFhO0lBQTFDOztRQUNFLGNBQVMsR0FBRyxLQUFLLENBQUM7SUErRXBCLENBQUM7SUF4REM7O09BRUc7SUFDSCxJQUFJLGFBQWE7UUFDZixxRUFBcUU7UUFDckUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pDLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7UUFFRCxPQUFPLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxjQUFjLENBQUMsV0FBd0I7UUFDckMsT0FBTyxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUM7SUFDM0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsb0JBQW9CLENBQUMsV0FBd0I7UUFDM0MsT0FBTyxXQUFXLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxZQUFZO1FBQ1YsTUFBTSxRQUFRLEdBQVcsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQztRQUVuRCxPQUFPLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQztJQUNwRixDQUFDO0lBdUJELE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxlQUFlLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Q0FDRjtBQXZFQztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7cUNBQ047QUFHWDtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7cUNBQ047QUFHWDtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7cUNBQ047QUFHbEI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDO3FDQUNOO0FBSWQ7SUFGQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDO0lBQ3ZCLFNBQVMsQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFjLEtBQUssQ0FBQyxDQUFDO3NDQUM1QjtBQXFERjtJQWY1QixTQUFTLENBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUU7UUFDbkIsTUFBTSxJQUFJLEdBQWdCLFlBQVksQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzdELElBQUksSUFBSSxFQUFFO1lBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQTtTQUM3QztRQUNELElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRTtZQUNoQixPQUFPO2dCQUNMLHVCQUF1QixDQUFDLFdBQVc7Z0JBQ25DLHVCQUF1QixDQUFDLGNBQWM7Z0JBQ3RDLHVCQUF1QixDQUFDLGFBQWE7Z0JBQ3JDLHVCQUF1QixDQUFDLEtBQUs7YUFDOUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7U0FDaEQ7UUFDRCxPQUFPLHVCQUF1QixDQUFDLEtBQUssQ0FBQztJQUN2QyxDQUFDLEVBQUUsRUFBQyxXQUFXLEVBQUUsSUFBSSxFQUFDLENBQUM7SUFDdEIsTUFBTSxDQUFDLEVBQUMsV0FBVyxFQUFFLElBQUksRUFBQyxDQUFDO3lDQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV4cG9zZSwgcGxhaW5Ub0NsYXNzLCBUcmFuc2Zvcm0sIFR5cGUgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vdXNlcic7XG5pbXBvcnQgeyBIb2xkaW5nVHlwZSB9IGZyb20gJy4vaG9sZGluZy10eXBlJztcbmltcG9ydCB7IEFwcEZpbGUgfSBmcm9tICcuLi9maWxlJztcbmltcG9ydCB7IEhvbGRpbmdTYWxlIH0gZnJvbSAnLi9ob2xkaW5nLXNhbGUnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IEFic3RyYWN0TW9kZWwgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMnO1xuaW1wb3J0IHsgRmluYW5jaWFsWWVhciB9IGZyb20gJy4uL2ZpbmFuY2lhbC15ZWFyJztcbmltcG9ydCB7IEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMnO1xuXG5leHBvcnQgY2xhc3MgSG9sZGluZyBleHRlbmRzIEFic3RyYWN0TW9kZWwge1xuICBpc1RheEZyZWUgPSBmYWxzZTtcbiAgcXVhbnRpdHk6IG51bWJlcjtcbiAgY3VycmVudFF1YW50aXR5OiBudW1iZXI7XG4gIG93bmVyc2hpcFBlcmNlbnQ/OiBudW1iZXI7XG4gIHByaWNlOiBudW1iZXI7XG4gIGZlZTogbnVtYmVyO1xuXG4gIEBUeXBlKCgpID0+IERhdGUpXG4gIGRhdGU6IERhdGU7XG5cbiAgQFR5cGUoKCkgPT4gVXNlcilcbiAgdXNlcjogVXNlcjtcblxuICBAVHlwZSgoKSA9PiBIb2xkaW5nVHlwZSlcbiAgdHlwZTogSG9sZGluZ1R5cGU7XG5cbiAgQFR5cGUoKCkgPT4gQXBwRmlsZSlcbiAgZmlsZTogQXBwRmlsZTtcblxuICBAVHlwZSgoKSA9PiBIb2xkaW5nU2FsZSlcbiAgQFRyYW5zZm9ybSgoe3ZhbHVlfSkgPT4gbmV3IENvbGxlY3Rpb248SG9sZGluZ1NhbGU+KHZhbHVlKSlcbiAgc2FsZXM6IENvbGxlY3Rpb248SG9sZGluZ1NhbGU+O1xuXG4gIC8qKlxuICAgKiBHZXQgdG90YWwgcHVyY2hhc2luZyBwcmljZVxuICAgKi9cbiAgZ2V0IHB1cmNoYXNlVmFsdWUoKTogbnVtYmVyIHtcbiAgICAvLyBQcmljZSBhbmQgZW50aXR5IG1heSBiZSBlbXB0eSB3aGVuIHdlIHVzZSBIb2xkaW5nRm9ybS5jdXJyZW50VmFsdWVcbiAgICBpZiAoIXRoaXMucHJpY2UgfHwgIXRoaXMucXVhbnRpdHkpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnByaWNlICogdGhpcy5xdWFudGl0eTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY3VycmVudCBtYXJrZXQgcHJpY2VcbiAgICovXG4gIGdldE1hcmtldFZhbHVlKGhvbGRpbmdUeXBlOiBIb2xkaW5nVHlwZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucXVhbnRpdHkgKiBob2xkaW5nVHlwZS5wcmljZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgcGVyY2VudCBkaWZmZXJlbmNlIGJldHdlZW4gY3VycmVudCBhbmQgYnV5IHByaWNlXG4gICAqL1xuICBnZXRHcm93dGhDb2VmZmljaWVudChob2xkaW5nVHlwZTogSG9sZGluZ1R5cGUpOiBudW1iZXIge1xuICAgIHJldHVybiBob2xkaW5nVHlwZS5wcmljZSAvIHRoaXMucHJpY2UgLSAxO1xuICB9XG5cbiAgaGVsZE1vcmVZZWFyKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHllYXJUaW1lOiBudW1iZXIgPSAxMDAwICogNjAgKiA2MCAqIDI0ICogMzY1O1xuXG4gICAgcmV0dXJuIChuZXcgRmluYW5jaWFsWWVhcigpLnN0YXJ0RGF0ZS5nZXRUaW1lKCkgLSB0aGlzLmRhdGUuZ2V0VGltZSgpKSA+IHllYXJUaW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIEFydGVtL0FsZXggbG9va3MgYmFkLCBjb21lIHVwIHdpdGggYSBiZXR0ZXIgc29sdXRpb25cbiAgICogZ2V0IGN1cnJlbnQgY2F0ZWdvcnksIGluIGhvbGRpbmcgd2UgYXJlIGludGVyZXN0ZWQgaW4gMyBtYWluIGNhdGVnb3JpZXM6IHN0b2NrL2NyeXB0by9vdGhlclxuICAgKi9cbiAgQFRyYW5zZm9ybSgoe29ian0pID0+IHtcbiAgICBjb25zdCB0eXBlIDpIb2xkaW5nVHlwZSA9IHBsYWluVG9DbGFzcyhIb2xkaW5nVHlwZSwgb2JqLnR5cGUpXG4gICAgaWYgKHR5cGUpIHtcbiAgICAgIHJldHVybiB0eXBlLmlzT3RoZXIoKSA/IG51bGwgOiB0eXBlLmNhdGVnb3J5XG4gICAgfVxuICAgIGlmIChvYmouY2F0ZWdvcnkpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtLkNPTExFQ1RJQkxFLFxuICAgICAgICBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bS5VTkxJU1RFRF9TVE9DSyxcbiAgICAgICAgSG9sZGluZ1R5cGVDYXRlZ29yeUVudW0uVU5MSVNURURfVU5JVCxcbiAgICAgICAgSG9sZGluZ1R5cGVDYXRlZ29yeUVudW0uT1RIRVJcbiAgICAgIF0uaW5jbHVkZXMob2JqLmNhdGVnb3J5KSA/IG51bGwgOiBvYmouY2F0ZWdvcnk7XG4gICAgfVxuICAgIHJldHVybiBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bS5TVE9DSztcbiAgfSwge3RvQ2xhc3NPbmx5OiB0cnVlfSlcbiAgQEV4cG9zZSh7dG9DbGFzc09ubHk6IHRydWV9KSBjYXRlZ29yeTogSG9sZGluZ1R5cGVDYXRlZ29yeUVudW07XG5cbiAgaXNTb2xkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRRdWFudGl0eSA9PT0gMDtcbiAgfVxufVxuIl19
@@ -8550,17 +8550,6 @@ class Holding extends AbstractModel {
8550
8550
  const yearTime = 1000 * 60 * 60 * 24 * 365;
8551
8551
  return (new FinancialYear().startDate.getTime() - this.date.getTime()) > yearTime;
8552
8552
  }
8553
- /**
8554
- * in holding we are interested in 3 main categories: stock/crypto/other
8555
- */
8556
- get category() {
8557
- if (this.type) {
8558
- return this.type.isOther() ? null : this.type.category;
8559
- }
8560
- else {
8561
- return HoldingTypeCategoryEnum.STOCK;
8562
- }
8563
- }
8564
8553
  isSold() {
8565
8554
  return this.currentQuantity === 0;
8566
8555
  }
@@ -8581,6 +8570,24 @@ __decorate([
8581
8570
  Type(() => HoldingSale),
8582
8571
  Transform(({ value }) => new Collection(value))
8583
8572
  ], Holding.prototype, "sales", void 0);
8573
+ __decorate([
8574
+ Transform(({ obj }) => {
8575
+ const type = plainToClass(HoldingType, obj.type);
8576
+ if (type) {
8577
+ return type.isOther() ? null : type.category;
8578
+ }
8579
+ if (obj.category) {
8580
+ return [
8581
+ HoldingTypeCategoryEnum.COLLECTIBLE,
8582
+ HoldingTypeCategoryEnum.UNLISTED_STOCK,
8583
+ HoldingTypeCategoryEnum.UNLISTED_UNIT,
8584
+ HoldingTypeCategoryEnum.OTHER
8585
+ ].includes(obj.category) ? null : obj.category;
8586
+ }
8587
+ return HoldingTypeCategoryEnum.STOCK;
8588
+ }, { toClassOnly: true }),
8589
+ Expose({ toClassOnly: true })
8590
+ ], Holding.prototype, "category", void 0);
8584
8591
 
8585
8592
  class AnnualClientDetails extends AbstractModel {
8586
8593
  constructor() {