@cubedelement.com/realty-investor-timeline 5.5.1 → 5.6.0
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.
- package/CHANGELOG.md +7 -0
- package/dist/src/account/i-user-goal.d.ts +5 -0
- package/dist/src/account/user.d.ts +20 -1
- package/dist/src/account/user.js +21 -0
- package/dist/src/ledger/ledger-collection.d.ts +4 -0
- package/dist/src/ledger/ledger-collection.js +43 -0
- package/dist/src/ledger/ledger-item.d.ts +5 -0
- package/dist/src/ledger/ledger-item.js +19 -0
- package/dist/src/time/default-has-met-goal-or-max-time.js +1 -1
- package/dist/src/time/looper.js +1 -1
- package/dist/src/utils/get-date-quarter.d.ts +1 -0
- package/dist/src/utils/get-date-quarter.js +5 -0
- package/package.json +1 -1
- package/.github/dependabot.yml +0 -10
- package/docs/_media/badge.svg +0 -1
- package/docs/account/i-user-goal/index.md +0 -11
- package/docs/account/i-user-goal/interfaces/IUserGoal.md +0 -47
- package/docs/account/i-user-investor-check/index.md +0 -11
- package/docs/account/i-user-investor-check/interfaces/IUserInvestorCheck.md +0 -206
- package/docs/account/index.md +0 -31
- package/docs/account/user/classes/User.md +0 -312
- package/docs/account/user/index.md +0 -15
- package/docs/account/user/interfaces/IUser.md +0 -282
- package/docs/caching/index.md +0 -19
- package/docs/caching/value-cache/classes/ValueCache.md +0 -194
- package/docs/caching/value-cache/index.md +0 -15
- package/docs/caching/value-cache/interfaces/IValueCache.md +0 -104
- package/docs/calculations/can-invest-by-user/functions/canInvestByUser.md +0 -35
- package/docs/calculations/can-invest-by-user/index.md +0 -11
- package/docs/calculations/cash-on-cash-return/functions/cashOnCashReturn.md +0 -29
- package/docs/calculations/cash-on-cash-return/index.md +0 -11
- package/docs/calculations/get-cost-down/functions/getCostDown.md +0 -27
- package/docs/calculations/get-cost-down/index.md +0 -11
- package/docs/calculations/get-cost-down-user-investment-results/functions/getCostDownUserInvestmentResults.md +0 -33
- package/docs/calculations/get-cost-down-user-investment-results/index.md +0 -11
- package/docs/calculations/get-equity-capture-amount/functions/getEquityCaptureAmount.md +0 -31
- package/docs/calculations/get-equity-capture-amount/index.md +0 -11
- package/docs/calculations/get-equity-capture-user-investment-results/functions/getEquityCaptureUserInvestmentResults.md +0 -33
- package/docs/calculations/get-equity-capture-user-investment-results/index.md +0 -11
- package/docs/calculations/get-investment-percent/functions/getInvestmentPercent.md +0 -27
- package/docs/calculations/get-investment-percent/index.md +0 -11
- package/docs/calculations/get-min-cost-down-by-rule/functions/getMinCostDownByRule.md +0 -25
- package/docs/calculations/get-min-cost-down-by-rule/index.md +0 -11
- package/docs/calculations/get-monthly-mortgage/functions/getMonthlyMortgage.md +0 -43
- package/docs/calculations/get-monthly-mortgage/index.md +0 -11
- package/docs/calculations/get-monthly-principal-interest-tax-interest/functions/getMonthlyPrincipalInterestTaxInterest.md +0 -43
- package/docs/calculations/get-monthly-principal-interest-tax-interest/index.md +0 -11
- package/docs/calculations/get-sell-price-estimate/functions/getSellPriceEstimate.md +0 -33
- package/docs/calculations/get-sell-price-estimate/index.md +0 -11
- package/docs/calculations/index.md +0 -73
- package/docs/calculations/return-on-capital-gain/functions/returnOnCapitalGain.md +0 -31
- package/docs/calculations/return-on-capital-gain/index.md +0 -11
- package/docs/formatters/currency/functions/default.md +0 -21
- package/docs/formatters/currency/index.md +0 -11
- package/docs/formatters/index.md +0 -7
- package/docs/generators/factory-passive-apartment/functions/generateRentalPassiveApartment.md +0 -35
- package/docs/generators/factory-passive-apartment/index.md +0 -11
- package/docs/generators/factory-single-family/functions/generateSingleFamily.md +0 -35
- package/docs/generators/factory-single-family/index.md +0 -11
- package/docs/generators/generate-property/index.md +0 -11
- package/docs/generators/generate-property/type-aliases/GenerateProperty.md +0 -37
- package/docs/generators/generic-generate-property/functions/genericGenerateProperty.md +0 -35
- package/docs/generators/generic-generate-property/index.md +0 -11
- package/docs/generators/i-property-entity-options/index.md +0 -11
- package/docs/generators/i-property-entity-options/interfaces/IPropertyEntityOptions.md +0 -113
- package/docs/generators/index.md +0 -49
- package/docs/generators/rental-generator/classes/RentalGenerator.md +0 -248
- package/docs/generators/rental-generator/index.md +0 -15
- package/docs/generators/rental-generator/interfaces/IRentalGenerator.md +0 -65
- package/docs/index/index.md +0 -487
- package/docs/index.md +0 -258
- package/docs/investments/index.md +0 -85
- package/docs/investments/investment-reasons/enumerations/InvestmentReasons.md +0 -119
- package/docs/investments/investment-reasons/index.md +0 -11
- package/docs/investments/investment-reasons-decorator/functions/InvestmentReasonForHoldRuleTypes.md +0 -25
- package/docs/investments/investment-reasons-decorator/functions/InvestmentReasonForPurchaseRuleTypes.md +0 -25
- package/docs/investments/investment-reasons-decorator/functions/getInvestmentReasons.md +0 -33
- package/docs/investments/investment-reasons-decorator/functions/getInvestmentReasonsForPurchaseTypes.md +0 -25
- package/docs/investments/investment-reasons-decorator/index.md +0 -18
- package/docs/investments/investment-reasons-decorator/type-aliases/PropertyDecoratorType.md +0 -29
- package/docs/investments/reason-to-rule/classes/ReasonToRule.md +0 -263
- package/docs/investments/reason-to-rule/index.md +0 -16
- package/docs/investments/reason-to-rule/interfaces/IReasonToRule.md +0 -189
- package/docs/investments/reason-to-rule/interfaces/IReasonToRuleMeta.md +0 -33
- package/docs/investments/rental-investor-validator/classes/RentalInvestorValidator.md +0 -53
- package/docs/investments/rental-investor-validator/index.md +0 -15
- package/docs/investments/rental-investor-validator/interfaces/IRentalInvestorValidator.md +0 -25
- package/docs/investments/user-invest-result/classes/UserInvestResult.md +0 -65
- package/docs/investments/user-invest-result/index.md +0 -15
- package/docs/investments/user-invest-result/interfaces/IUserInvestResult.md +0 -25
- package/docs/investments/user-result-estimates/index.md +0 -11
- package/docs/investments/user-result-estimates/type-aliases/UserResultEstimates.md +0 -33
- package/docs/ledger/i-ledger-summary/index.md +0 -11
- package/docs/ledger/i-ledger-summary/interfaces/ILedgerSummary.md +0 -57
- package/docs/ledger/index.md +0 -43
- package/docs/ledger/ledger-collection/classes/LedgerCollection.md +0 -425
- package/docs/ledger/ledger-collection/index.md +0 -19
- package/docs/ledger/ledger-collection/interfaces/ILedgerCollection.md +0 -313
- package/docs/ledger/ledger-collection/type-aliases/LedgerItemPredicate.md +0 -25
- package/docs/ledger/ledger-item/classes/LedgerItem.md +0 -211
- package/docs/ledger/ledger-item/index.md +0 -11
- package/docs/ledger/ledger-item-type/enumerations/LedgerItemType.md +0 -57
- package/docs/ledger/ledger-item-type/index.md +0 -11
- package/docs/loans/i-loan-settings/index.md +0 -11
- package/docs/loans/i-loan-settings/interfaces/ILoanSetting.md +0 -33
- package/docs/loans/index.md +0 -19
- package/docs/loans/loan-settings/enumerations/LoanSettings.md +0 -41
- package/docs/loans/loan-settings/index.md +0 -11
- package/docs/modules.md +0 -88
- package/docs/properties/i-entity-existence/index.md +0 -11
- package/docs/properties/i-entity-existence/interfaces/IEntityExistence.md +0 -33
- package/docs/properties/i-property-entity/index.md +0 -11
- package/docs/properties/i-property-entity/interfaces/IPropertyEntity.md +0 -159
- package/docs/properties/i-rental-property-entity/index.md +0 -11
- package/docs/properties/i-rental-property-entity/interfaces/IRentalPropertyEntity.md +0 -416
- package/docs/properties/index.md +0 -43
- package/docs/properties/property-sort/functions/default.md +0 -35
- package/docs/properties/property-sort/index.md +0 -11
- package/docs/properties/property-type/enumerations/PropertyType.md +0 -33
- package/docs/properties/property-type/index.md +0 -11
- package/docs/properties/rental-passive-apartment/classes/RentalPassiveApartment.md +0 -558
- package/docs/properties/rental-passive-apartment/index.md +0 -11
- package/docs/properties/rental-single-family/classes/RentalSingleFamily.md +0 -639
- package/docs/properties/rental-single-family/index.md +0 -11
- package/docs/rules/eval-type/index.md +0 -11
- package/docs/rules/eval-type/type-aliases/EvalType.md +0 -25
- package/docs/rules/eval-types/functions/AtLeastOrMore.md +0 -25
- package/docs/rules/eval-types/functions/NoMoreThan.md +0 -25
- package/docs/rules/eval-types/index.md +0 -12
- package/docs/rules/get-enum-type-by-value/functions/getEnumTypeByValue.md +0 -23
- package/docs/rules/get-enum-type-by-value/index.md +0 -11
- package/docs/rules/get-rules/functions/getRules.md +0 -27
- package/docs/rules/get-rules/index.md +0 -11
- package/docs/rules/hold-rule-types/enumerations/HoldRuleTypes.md +0 -49
- package/docs/rules/hold-rule-types/index.md +0 -11
- package/docs/rules/i-rule/index.md +0 -11
- package/docs/rules/i-rule/interfaces/IRule.md +0 -41
- package/docs/rules/index.md +0 -67
- package/docs/rules/purchase-rule-types/enumerations/PurchaseRuleTypes.md +0 -78
- package/docs/rules/purchase-rule-types/index.md +0 -11
- package/docs/rules/rule-evaluation/classes/RuleEvaluation.md +0 -103
- package/docs/rules/rule-evaluation/index.md +0 -15
- package/docs/rules/rule-evaluation/interfaces/IRuleEvaluation.md +0 -73
- package/docs/time/default-has-met-goal-or-max-time/functions/defaultHasMetGoalOrMaxTime.md +0 -39
- package/docs/time/default-has-met-goal-or-max-time/index.md +0 -11
- package/docs/time/has-met-goal-or-max-time/index.md +0 -11
- package/docs/time/has-met-goal-or-max-time/type-aliases/HasMetGoalOrMaxTime.md +0 -39
- package/docs/time/i-historical-property/index.md +0 -11
- package/docs/time/i-historical-property/interfaces/IHistoricalProperty.md +0 -25
- package/docs/time/i-historical-reason/index.md +0 -11
- package/docs/time/i-historical-reason/interfaces/IHistoricalReason.md +0 -25
- package/docs/time/i-loop-options/index.md +0 -11
- package/docs/time/i-loop-options/interfaces/ILoopOptions.md +0 -71
- package/docs/time/i-loop-recursive-options/index.md +0 -11
- package/docs/time/i-loop-recursive-options/interfaces/ILoopRecursiveOptions.md +0 -33
- package/docs/time/index.md +0 -85
- package/docs/time/looper/functions/looper.md +0 -25
- package/docs/time/looper/index.md +0 -15
- package/docs/time/looper/type-aliases/LooperType.md +0 -25
- package/docs/time/movement/functions/movement.md +0 -27
- package/docs/time/movement/index.md +0 -11
- package/docs/time/simulate/functions/simulate.md +0 -23
- package/docs/time/simulate/index.md +0 -16
- package/docs/time/simulate/interfaces/IGenOptions.md +0 -163
- package/docs/time/simulate/interfaces/ISimulateOptions.md +0 -115
- package/docs/time/timeline/classes/Timeline.md +0 -175
- package/docs/time/timeline/index.md +0 -15
- package/docs/time/timeline/interfaces/ITimeline.md +0 -83
- package/docs/time/update-historical-rentals/functions/updateHistoricalRentals.md +0 -41
- package/docs/time/update-historical-rentals/index.md +0 -11
- package/docs/utils/data-are-same-date/functions/default.md +0 -25
- package/docs/utils/data-are-same-date/index.md +0 -11
- package/docs/utils/data-clone-date/functions/cloneDateUtc.md +0 -27
- package/docs/utils/data-clone-date/index.md +0 -11
- package/docs/utils/data-compare-date/functions/default.md +0 -28
- package/docs/utils/data-compare-date/index.md +0 -11
- package/docs/utils/data-number/functions/randomNumberBetween.md +0 -25
- package/docs/utils/data-number/index.md +0 -11
- package/docs/utils/data-property-entity/functions/randomPropertyEntity.md +0 -23
- package/docs/utils/data-property-entity/index.md +0 -15
- package/docs/utils/data-property-entity/type-aliases/RandomPropertyEntity.md +0 -21
- package/docs/utils/ensure/functions/ensureArray.md +0 -39
- package/docs/utils/ensure/index.md +0 -15
- package/docs/utils/ensure/type-aliases/EnsureArrayPredicate.md +0 -29
- package/docs/utils/index.md +0 -43
package/docs/index.md
DELETED
|
@@ -1,258 +0,0 @@
|
|
|
1
|
-
**@cubedelement.com/realty-investor-timeline**
|
|
2
|
-
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# realty-investor-timeline
|
|
6
|
-
|
|
7
|
-
[](https://circleci.com/gh/kvernon/realty-investor-timeline)
|
|
8
|
-
[](https://github.com/semantic-release/semantic-release)
|
|
9
|
-
[](https://wallabyjs.com)
|
|
10
|
-

|
|
11
|
-
|
|
12
|
-
A way to determine if and when your expenses would be covered through rental properties
|
|
13
|
-
|
|
14
|
-
Will be based on version 1
|
|
15
|
-
|
|
16
|
-
1. https://bitbucket.org/kellyvernon/realty-generator-core (a private repo by me).
|
|
17
|
-
2. version 1 live: http://cubedelement.com/realty/
|
|
18
|
-
|
|
19
|
-
> Note: this above is buggy. I was racing to get the pieces together.
|
|
20
|
-
|
|
21
|
-
> Note 2: this is the new version, which isn't live
|
|
22
|
-
|
|
23
|
-
## Inspiration
|
|
24
|
-
|
|
25
|
-
This was originally used as a discussion point between me and my SO. The idea is that we like our jobs, but we also want
|
|
26
|
-
a way to ensure that if anything happens to us, we would be able to sustain our income.
|
|
27
|
-
|
|
28
|
-
For me, I was inspired by a game originally from early 2000's where you could quickly click on houses and flip them, but
|
|
29
|
-
after this idea and speaking with mentors, the idea has become find an optimal way to _ramp-up_.
|
|
30
|
-
|
|
31
|
-
> ☝️Mentors are great! They do a great job at helping you discover how to get to the next point in your life. Also, a
|
|
32
|
-
> mentor is someone who has done the thing and is either where you've been or want to go. AKA, don't ask a someone how
|
|
33
|
-
> to become a CEO when that person has never been a CEO. (Hopefully that give you a good idea)
|
|
34
|
-
|
|
35
|
-
## What this does
|
|
36
|
-
|
|
37
|
-
As mentioned prior, we want to find a way to _ramp-up_. This library will work through the scenarios of houses and
|
|
38
|
-
provide a way to collect them. Once it completes, it'll provide feedback as to why you passed on a property.
|
|
39
|
-
|
|
40
|
-
For example, it could be that you didn't have enough cash. Another is that you may have wanted more cash flow per month.
|
|
41
|
-
After you see the trends, and based on the time-line hand at play, you could realize that you might need to expand on
|
|
42
|
-
your ideal finds.
|
|
43
|
-
|
|
44
|
-
The library loop simulates a per-month savings. In there it will take your money saved and determine if you have enough
|
|
45
|
-
to acquire more properties. Equally, we run through selling of properties too, because it's a common practice.
|
|
46
|
-
|
|
47
|
-
## Building
|
|
48
|
-
|
|
49
|
-
### Node version
|
|
50
|
-
|
|
51
|
-
On linux, mac, etc... do: `$ nvm install`, referencing this manager: `https://github.com/nvm-sh/nvm`
|
|
52
|
-
|
|
53
|
-
on windows: `$ nvs install`, referencing this manager: `https://github.com/jasongin/nvs`
|
|
54
|
-
|
|
55
|
-
### Getting the Repo up and running
|
|
56
|
-
|
|
57
|
-
#### Install libs
|
|
58
|
-
|
|
59
|
-
`$ npm ci`
|
|
60
|
-
|
|
61
|
-
#### Run tests
|
|
62
|
-
|
|
63
|
-
`$ npm run tests`
|
|
64
|
-
|
|
65
|
-
> ☝️This can run using Wallaby.js in automatic config, or you can use the config supplied here
|
|
66
|
-
|
|
67
|
-
### CI/CD (Delivery)
|
|
68
|
-
|
|
69
|
-
This project _sports_ a non gitflow workflow.
|
|
70
|
-
|
|
71
|
-
#### Branches
|
|
72
|
-
|
|
73
|
-
`main` and `feature/*`
|
|
74
|
-
|
|
75
|
-
#### The (CI/CD) Flow
|
|
76
|
-
|
|
77
|
-
Once a feature's PR is merged, the pipeline will run checks and publish.
|
|
78
|
-
|
|
79
|
-
## Single family homes
|
|
80
|
-
|
|
81
|
-
### Features
|
|
82
|
-
|
|
83
|
-
- Mortgage calc (Single Family) ✔
|
|
84
|
-
- Rent amount ✔
|
|
85
|
-
- Cash flow ✔
|
|
86
|
-
- Appreciation calculation ✔
|
|
87
|
-
- Equity (simple) ✔
|
|
88
|
-
- Monthly summaries ✔
|
|
89
|
-
- Annual summaries ✔
|
|
90
|
-
|
|
91
|
-
### Needed things (in no order)
|
|
92
|
-
|
|
93
|
-
- TODO: Hard Money Loan calc ✋
|
|
94
|
-
- What would the transition look like in code?
|
|
95
|
-
- TODO: Cash flow ramp (0 - 3 months depending on rehab, conventional, or existing tenant)
|
|
96
|
-
- Transition would be around Hard Money vs Conventional
|
|
97
|
-
|
|
98
|
-
## Missing features
|
|
99
|
-
|
|
100
|
-
1. delay 1st mortgage payment
|
|
101
|
-
2. refactor loop
|
|
102
|
-
|
|
103
|
-
## Future
|
|
104
|
-
|
|
105
|
-
- Refine the build process to remove /dist/src from library drill down
|
|
106
|
-
|
|
107
|
-
## calling
|
|
108
|
-
|
|
109
|
-
As this is still in progress, the current flow is as follows:
|
|
110
|
-
|
|
111
|
-
```typescript
|
|
112
|
-
import {
|
|
113
|
-
HasMetGoalOrMaxTime,
|
|
114
|
-
ISimulateOptions,
|
|
115
|
-
LedgerCollection,
|
|
116
|
-
LoanSettings,
|
|
117
|
-
HoldRuleTypes,
|
|
118
|
-
PropertyType,
|
|
119
|
-
RentalGenerator,
|
|
120
|
-
RentalSingleFamily,
|
|
121
|
-
RuleEvaluation,
|
|
122
|
-
PurchaseRuleTypes,
|
|
123
|
-
ValueCache,
|
|
124
|
-
User,
|
|
125
|
-
simulate,
|
|
126
|
-
} from "@cubedelement.com/realty-investor-timeline";
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* Callout!
|
|
130
|
-
* This example shows you all the options available, and most are defaulted if you don't supply the options object.
|
|
131
|
-
* This only one that isn't supplied is the generatorOptionsPassiveApartment values.
|
|
132
|
-
*/
|
|
133
|
-
const options: ISimulateOptions = {
|
|
134
|
-
amountInSavings: 100000,
|
|
135
|
-
monthlyIncomeAmountGoal: 10000,
|
|
136
|
-
monthlySavedAmount: 10000,
|
|
137
|
-
holdRules: [
|
|
138
|
-
{
|
|
139
|
-
value: 5,
|
|
140
|
-
type: HoldRuleTypes.MinSellIfHighEquityPercent,
|
|
141
|
-
propertyType: PropertyType.SingleFamily,
|
|
142
|
-
},
|
|
143
|
-
],
|
|
144
|
-
purchaseRules: [
|
|
145
|
-
{
|
|
146
|
-
value: 50000,
|
|
147
|
-
type: PurchaseRuleTypes.MaxEstimatedOutOfPocket,
|
|
148
|
-
propertyType: PropertyType.SingleFamily,
|
|
149
|
-
},
|
|
150
|
-
{
|
|
151
|
-
value: 7000,
|
|
152
|
-
type: PurchaseRuleTypes.MinEstimatedCapitalGainsPercent,
|
|
153
|
-
propertyType: PropertyType.SingleFamily,
|
|
154
|
-
},
|
|
155
|
-
{
|
|
156
|
-
value: 200,
|
|
157
|
-
type: PurchaseRuleTypes.MinEstimatedAnnualCashFlow,
|
|
158
|
-
propertyType: PropertyType.SingleFamily,
|
|
159
|
-
},
|
|
160
|
-
],
|
|
161
|
-
loanSettings: [
|
|
162
|
-
{
|
|
163
|
-
propertyType: PropertyType.SingleFamily,
|
|
164
|
-
name: LoanSettings.MinimumMonthlyReservesForRental,
|
|
165
|
-
value: 6,
|
|
166
|
-
},
|
|
167
|
-
{
|
|
168
|
-
name: LoanSettings.LoanRatePercent,
|
|
169
|
-
value: 4,
|
|
170
|
-
propertyType: PropertyType.SingleFamily,
|
|
171
|
-
},
|
|
172
|
-
{
|
|
173
|
-
name: LoanSettings.LoanTermInYears,
|
|
174
|
-
value: 30,
|
|
175
|
-
propertyType: PropertyType.SingleFamily,
|
|
176
|
-
},
|
|
177
|
-
],
|
|
178
|
-
maxYears: 7,
|
|
179
|
-
generatorOptionsSingleFamily: {
|
|
180
|
-
lowestMinSellInYears: 1,
|
|
181
|
-
highestMinSellInYears: 1,
|
|
182
|
-
lowestPurchasePrice: 150000,
|
|
183
|
-
highestPurchasePrice: 250000,
|
|
184
|
-
lowestSellAppreciationPercent: 5,
|
|
185
|
-
highestSellAppreciationPercent: 7,
|
|
186
|
-
lowestCashFlow: 200,
|
|
187
|
-
highestCashFlow: 550,
|
|
188
|
-
lowestEquityCapturePercent: 7,
|
|
189
|
-
highestEquityCapturePercent: 15,
|
|
190
|
-
maxRentalOpportunities: 4,
|
|
191
|
-
},
|
|
192
|
-
generatorOptionsPassiveApartment: {
|
|
193
|
-
lowestMinSellInYears: 1,
|
|
194
|
-
highestMinSellInYears: 1,
|
|
195
|
-
lowestPurchasePrice: 150000,
|
|
196
|
-
highestPurchasePrice: 200000,
|
|
197
|
-
lowestSellAppreciationPercent: 5,
|
|
198
|
-
highestSellAppreciationPercent: 7,
|
|
199
|
-
lowestCashFlow: 200,
|
|
200
|
-
highestCashFlow: 500,
|
|
201
|
-
lowestEquityCapturePercent: 7,
|
|
202
|
-
highestEquityCapturePercent: 15,
|
|
203
|
-
maxRentalOpportunities: 6,
|
|
204
|
-
},
|
|
205
|
-
};
|
|
206
|
-
|
|
207
|
-
const timeline = simulate(options);
|
|
208
|
-
|
|
209
|
-
//Finally, to review your results, you can use the ledgerCollection's getSummariesAnnual.
|
|
210
|
-
const lastYear = timeline.user.ledgerCollection.getSummariesAnnual(
|
|
211
|
-
timeline.endDate.getUTCFullYear()
|
|
212
|
-
);
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
The example result object models:
|
|
216
|
-
`Timeline`:
|
|
217
|
-
|
|
218
|
-
```JSON
|
|
219
|
-
{
|
|
220
|
-
"startDate": "2021-11-01T00:00:00.000Z",
|
|
221
|
-
"endDate": "2022-11-01T00:00:00.000Z",
|
|
222
|
-
"rentals": [
|
|
223
|
-
{
|
|
224
|
-
"property": {
|
|
225
|
-
"sellPriceAppreciationPercent": 6,
|
|
226
|
-
"minSellYears": 1,
|
|
227
|
-
"id": "7674c1ec-2fb6-4828-9490-271e9ab4a3c4",
|
|
228
|
-
"purchasePrice": 162373,
|
|
229
|
-
"address": "1791 Wama Extension",
|
|
230
|
-
"monthlyCashFlow": 237,
|
|
231
|
-
"availableStartDate": "2021-12-01T00:00:00.000Z",
|
|
232
|
-
"availableEndDate": "2022-02-01T00:00:00.000Z",
|
|
233
|
-
"cashDownPercent": 25,
|
|
234
|
-
"monthlyPrincipalInterestTaxInterest": 949.57,
|
|
235
|
-
"_purchaseDate": "2022-01-01T06:00:00.000Z",
|
|
236
|
-
"_soldDate": "2022-02-01T06:00:00.000Z"
|
|
237
|
-
},
|
|
238
|
-
"reasons": []
|
|
239
|
-
}
|
|
240
|
-
],
|
|
241
|
-
"user": {
|
|
242
|
-
"ledgerCollection": {
|
|
243
|
-
"collection": {
|
|
244
|
-
"source": [
|
|
245
|
-
{
|
|
246
|
-
"amount": 119603.25,
|
|
247
|
-
"type": "Equity Capture",
|
|
248
|
-
"created": "2022-11-01T00:00:00.000Z",
|
|
249
|
-
"note": "for: 1791 Wama Extension, id: 7674c1ec-2fb6-4828-9490-271e9ab4a3c4"
|
|
250
|
-
}
|
|
251
|
-
]
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
```
|
|
257
|
-
|
|
258
|
-
In it you can get an estimate monthly cash flow by calling `const estimated = timeline.getEstimatedMonthlyCashFlow();`
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
[**@cubedelement.com/realty-investor-timeline**](../index.md)
|
|
2
|
-
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
[@cubedelement.com/realty-investor-timeline](../modules.md) / investments
|
|
6
|
-
|
|
7
|
-
# investments
|
|
8
|
-
|
|
9
|
-
## References
|
|
10
|
-
|
|
11
|
-
### getInvestmentReasons
|
|
12
|
-
|
|
13
|
-
Re-exports [getInvestmentReasons](investment-reasons-decorator/functions/getInvestmentReasons.md)
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
### getInvestmentReasonsForPurchaseTypes
|
|
18
|
-
|
|
19
|
-
Re-exports [getInvestmentReasonsForPurchaseTypes](investment-reasons-decorator/functions/getInvestmentReasonsForPurchaseTypes.md)
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
### InvestmentReasonForHoldRuleTypes
|
|
24
|
-
|
|
25
|
-
Re-exports [InvestmentReasonForHoldRuleTypes](investment-reasons-decorator/functions/InvestmentReasonForHoldRuleTypes.md)
|
|
26
|
-
|
|
27
|
-
---
|
|
28
|
-
|
|
29
|
-
### InvestmentReasonForPurchaseRuleTypes
|
|
30
|
-
|
|
31
|
-
Re-exports [InvestmentReasonForPurchaseRuleTypes](investment-reasons-decorator/functions/InvestmentReasonForPurchaseRuleTypes.md)
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
### InvestmentReasons
|
|
36
|
-
|
|
37
|
-
Re-exports [InvestmentReasons](investment-reasons/enumerations/InvestmentReasons.md)
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
|
-
### IReasonToRule
|
|
42
|
-
|
|
43
|
-
Re-exports [IReasonToRule](reason-to-rule/interfaces/IReasonToRule.md)
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
### IReasonToRuleMeta
|
|
48
|
-
|
|
49
|
-
Re-exports [IReasonToRuleMeta](reason-to-rule/interfaces/IReasonToRuleMeta.md)
|
|
50
|
-
|
|
51
|
-
---
|
|
52
|
-
|
|
53
|
-
### IRentalInvestorValidator
|
|
54
|
-
|
|
55
|
-
Re-exports [IRentalInvestorValidator](rental-investor-validator/interfaces/IRentalInvestorValidator.md)
|
|
56
|
-
|
|
57
|
-
---
|
|
58
|
-
|
|
59
|
-
### IUserInvestResult
|
|
60
|
-
|
|
61
|
-
Re-exports [IUserInvestResult](user-invest-result/interfaces/IUserInvestResult.md)
|
|
62
|
-
|
|
63
|
-
---
|
|
64
|
-
|
|
65
|
-
### PropertyDecoratorType
|
|
66
|
-
|
|
67
|
-
Re-exports [PropertyDecoratorType](investment-reasons-decorator/type-aliases/PropertyDecoratorType.md)
|
|
68
|
-
|
|
69
|
-
---
|
|
70
|
-
|
|
71
|
-
### ReasonToRule
|
|
72
|
-
|
|
73
|
-
Re-exports [ReasonToRule](reason-to-rule/classes/ReasonToRule.md)
|
|
74
|
-
|
|
75
|
-
---
|
|
76
|
-
|
|
77
|
-
### RentalInvestorValidator
|
|
78
|
-
|
|
79
|
-
Re-exports [RentalInvestorValidator](rental-investor-validator/classes/RentalInvestorValidator.md)
|
|
80
|
-
|
|
81
|
-
---
|
|
82
|
-
|
|
83
|
-
### UserInvestResult
|
|
84
|
-
|
|
85
|
-
Re-exports [UserInvestResult](user-invest-result/classes/UserInvestResult.md)
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
[**@cubedelement.com/realty-investor-timeline**](../../../index.md)
|
|
2
|
-
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
[@cubedelement.com/realty-investor-timeline](../../../modules.md) / [investments/investment-reasons](../index.md) / InvestmentReasons
|
|
6
|
-
|
|
7
|
-
# Enumeration: InvestmentReasons
|
|
8
|
-
|
|
9
|
-
Defined in: [investments/investment-reasons.ts:1](https://github.com/kvernon/realty-investor-timeline/blob/c7446a8a5576468ac5874a2dd8323180fa97a55b/src/investments/investment-reasons.ts#L1)
|
|
10
|
-
|
|
11
|
-
## Enumeration Members
|
|
12
|
-
|
|
13
|
-
### DoesNotMeetUserRuleAnnualCashFlow
|
|
14
|
-
|
|
15
|
-
> **DoesNotMeetUserRuleAnnualCashFlow**: `6`
|
|
16
|
-
|
|
17
|
-
Defined in: [investments/investment-reasons.ts:34](https://github.com/kvernon/realty-investor-timeline/blob/c7446a8a5576468ac5874a2dd8323180fa97a55b/src/investments/investment-reasons.ts#L34)
|
|
18
|
-
|
|
19
|
-
The user wants a certain amount of annual cash flow
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
### DoesNotMeetUserRuleAskingPrice
|
|
24
|
-
|
|
25
|
-
> **DoesNotMeetUserRuleAskingPrice**: `8`
|
|
26
|
-
|
|
27
|
-
Defined in: [investments/investment-reasons.ts:44](https://github.com/kvernon/realty-investor-timeline/blob/c7446a8a5576468ac5874a2dd8323180fa97a55b/src/investments/investment-reasons.ts#L44)
|
|
28
|
-
|
|
29
|
-
Property's asking price, or market value, is not met
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
### DoesNotMeetUserRuleCapitalGain
|
|
34
|
-
|
|
35
|
-
> **DoesNotMeetUserRuleCapitalGain**: `10`
|
|
36
|
-
|
|
37
|
-
Defined in: [investments/investment-reasons.ts:54](https://github.com/kvernon/realty-investor-timeline/blob/c7446a8a5576468ac5874a2dd8323180fa97a55b/src/investments/investment-reasons.ts#L54)
|
|
38
|
-
|
|
39
|
-
Properties capital gain percent from purchase is lower than expected
|
|
40
|
-
|
|
41
|
-
---
|
|
42
|
-
|
|
43
|
-
### DoesNotMeetUserRuleCashOnCash
|
|
44
|
-
|
|
45
|
-
> **DoesNotMeetUserRuleCashOnCash**: `5`
|
|
46
|
-
|
|
47
|
-
Defined in: [investments/investment-reasons.ts:29](https://github.com/kvernon/realty-investor-timeline/blob/c7446a8a5576468ac5874a2dd8323180fa97a55b/src/investments/investment-reasons.ts#L29)
|
|
48
|
-
|
|
49
|
-
The user wants a certain percent of annual cash flow
|
|
50
|
-
|
|
51
|
-
---
|
|
52
|
-
|
|
53
|
-
### DoesNotMeetUserRuleEquityCapture
|
|
54
|
-
|
|
55
|
-
> **DoesNotMeetUserRuleEquityCapture**: `4`
|
|
56
|
-
|
|
57
|
-
Defined in: [investments/investment-reasons.ts:24](https://github.com/kvernon/realty-investor-timeline/blob/c7446a8a5576468ac5874a2dd8323180fa97a55b/src/investments/investment-reasons.ts#L24)
|
|
58
|
-
|
|
59
|
-
The user wants a certain amount of Unrealized Capital Gain (Equity)
|
|
60
|
-
|
|
61
|
-
---
|
|
62
|
-
|
|
63
|
-
### DoesNotMeetUserRuleOutOfPocket
|
|
64
|
-
|
|
65
|
-
> **DoesNotMeetUserRuleOutOfPocket**: `9`
|
|
66
|
-
|
|
67
|
-
Defined in: [investments/investment-reasons.ts:49](https://github.com/kvernon/realty-investor-timeline/blob/c7446a8a5576468ac5874a2dd8323180fa97a55b/src/investments/investment-reasons.ts#L49)
|
|
68
|
-
|
|
69
|
-
Property's cost down, or out of pocket expense, is larger than desired
|
|
70
|
-
|
|
71
|
-
---
|
|
72
|
-
|
|
73
|
-
### NoRules
|
|
74
|
-
|
|
75
|
-
> **NoRules**: `1`
|
|
76
|
-
|
|
77
|
-
Defined in: [investments/investment-reasons.ts:10](https://github.com/kvernon/realty-investor-timeline/blob/c7446a8a5576468ac5874a2dd8323180fa97a55b/src/investments/investment-reasons.ts#L10)
|
|
78
|
-
|
|
79
|
-
no rule applied
|
|
80
|
-
|
|
81
|
-
---
|
|
82
|
-
|
|
83
|
-
### PropertyIsAlreadyOwned
|
|
84
|
-
|
|
85
|
-
> **PropertyIsAlreadyOwned**: `7`
|
|
86
|
-
|
|
87
|
-
Defined in: [investments/investment-reasons.ts:39](https://github.com/kvernon/realty-investor-timeline/blob/c7446a8a5576468ac5874a2dd8323180fa97a55b/src/investments/investment-reasons.ts#L39)
|
|
88
|
-
|
|
89
|
-
Property is already owned
|
|
90
|
-
|
|
91
|
-
---
|
|
92
|
-
|
|
93
|
-
### Unknown
|
|
94
|
-
|
|
95
|
-
> **Unknown**: `0`
|
|
96
|
-
|
|
97
|
-
Defined in: [investments/investment-reasons.ts:5](https://github.com/kvernon/realty-investor-timeline/blob/c7446a8a5576468ac5874a2dd8323180fa97a55b/src/investments/investment-reasons.ts#L5)
|
|
98
|
-
|
|
99
|
-
unknown rule match
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
### UserHasNoMoneyToInvest
|
|
104
|
-
|
|
105
|
-
> **UserHasNoMoneyToInvest**: `2`
|
|
106
|
-
|
|
107
|
-
Defined in: [investments/investment-reasons.ts:14](https://github.com/kvernon/realty-investor-timeline/blob/c7446a8a5576468ac5874a2dd8323180fa97a55b/src/investments/investment-reasons.ts#L14)
|
|
108
|
-
|
|
109
|
-
No money for the user to invest with at this time
|
|
110
|
-
|
|
111
|
-
---
|
|
112
|
-
|
|
113
|
-
### UserHasNotSavedEnoughMoney
|
|
114
|
-
|
|
115
|
-
> **UserHasNotSavedEnoughMoney**: `3`
|
|
116
|
-
|
|
117
|
-
Defined in: [investments/investment-reasons.ts:19](https://github.com/kvernon/realty-investor-timeline/blob/c7446a8a5576468ac5874a2dd8323180fa97a55b/src/investments/investment-reasons.ts#L19)
|
|
118
|
-
|
|
119
|
-
The user has money, however, the user does not have enough to invest with at this time
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
[**@cubedelement.com/realty-investor-timeline**](../../index.md)
|
|
2
|
-
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
[@cubedelement.com/realty-investor-timeline](../../modules.md) / investments/investment-reasons
|
|
6
|
-
|
|
7
|
-
# investments/investment-reasons
|
|
8
|
-
|
|
9
|
-
## Enumerations
|
|
10
|
-
|
|
11
|
-
- [InvestmentReasons](enumerations/InvestmentReasons.md)
|
package/docs/investments/investment-reasons-decorator/functions/InvestmentReasonForHoldRuleTypes.md
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
[**@cubedelement.com/realty-investor-timeline**](../../../index.md)
|
|
2
|
-
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
[@cubedelement.com/realty-investor-timeline](../../../modules.md) / [investments/investment-reasons-decorator](../index.md) / InvestmentReasonForHoldRuleTypes
|
|
6
|
-
|
|
7
|
-
# Function: InvestmentReasonForHoldRuleTypes()
|
|
8
|
-
|
|
9
|
-
> **InvestmentReasonForHoldRuleTypes**(`investmentReason`, `ruleType`): [`PropertyDecoratorType`](../type-aliases/PropertyDecoratorType.md)\<[`IRentalPropertyEntity`](../../../properties/i-rental-property-entity/interfaces/IRentalPropertyEntity.md)\>
|
|
10
|
-
|
|
11
|
-
Defined in: [investments/investment-reasons-decorator.ts:70](https://github.com/kvernon/realty-investor-timeline/blob/c7446a8a5576468ac5874a2dd8323180fa97a55b/src/investments/investment-reasons-decorator.ts#L70)
|
|
12
|
-
|
|
13
|
-
## Parameters
|
|
14
|
-
|
|
15
|
-
### investmentReason
|
|
16
|
-
|
|
17
|
-
[`InvestmentReasons`](../../investment-reasons/enumerations/InvestmentReasons.md)
|
|
18
|
-
|
|
19
|
-
### ruleType
|
|
20
|
-
|
|
21
|
-
[`HoldRuleTypes`](../../../rules/hold-rule-types/enumerations/HoldRuleTypes.md)
|
|
22
|
-
|
|
23
|
-
## Returns
|
|
24
|
-
|
|
25
|
-
[`PropertyDecoratorType`](../type-aliases/PropertyDecoratorType.md)\<[`IRentalPropertyEntity`](../../../properties/i-rental-property-entity/interfaces/IRentalPropertyEntity.md)\>
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
[**@cubedelement.com/realty-investor-timeline**](../../../index.md)
|
|
2
|
-
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
[@cubedelement.com/realty-investor-timeline](../../../modules.md) / [investments/investment-reasons-decorator](../index.md) / InvestmentReasonForPurchaseRuleTypes
|
|
6
|
-
|
|
7
|
-
# Function: InvestmentReasonForPurchaseRuleTypes()
|
|
8
|
-
|
|
9
|
-
> **InvestmentReasonForPurchaseRuleTypes**(`investmentReason`, `ruleType`): [`PropertyDecoratorType`](../type-aliases/PropertyDecoratorType.md)\<[`IRentalPropertyEntity`](../../../properties/i-rental-property-entity/interfaces/IRentalPropertyEntity.md)\>
|
|
10
|
-
|
|
11
|
-
Defined in: [investments/investment-reasons-decorator.ts:63](https://github.com/kvernon/realty-investor-timeline/blob/c7446a8a5576468ac5874a2dd8323180fa97a55b/src/investments/investment-reasons-decorator.ts#L63)
|
|
12
|
-
|
|
13
|
-
## Parameters
|
|
14
|
-
|
|
15
|
-
### investmentReason
|
|
16
|
-
|
|
17
|
-
[`InvestmentReasons`](../../investment-reasons/enumerations/InvestmentReasons.md)
|
|
18
|
-
|
|
19
|
-
### ruleType
|
|
20
|
-
|
|
21
|
-
[`PurchaseRuleTypes`](../../../rules/purchase-rule-types/enumerations/PurchaseRuleTypes.md)
|
|
22
|
-
|
|
23
|
-
## Returns
|
|
24
|
-
|
|
25
|
-
[`PropertyDecoratorType`](../type-aliases/PropertyDecoratorType.md)\<[`IRentalPropertyEntity`](../../../properties/i-rental-property-entity/interfaces/IRentalPropertyEntity.md)\>
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
[**@cubedelement.com/realty-investor-timeline**](../../../index.md)
|
|
2
|
-
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
[@cubedelement.com/realty-investor-timeline](../../../modules.md) / [investments/investment-reasons-decorator](../index.md) / getInvestmentReasons
|
|
6
|
-
|
|
7
|
-
# Function: getInvestmentReasons()
|
|
8
|
-
|
|
9
|
-
> **getInvestmentReasons**\<`T`, `TR`\>(`target`, `metaDataNameSuffix`): [`IReasonToRule`](../../reason-to-rule/interfaces/IReasonToRule.md)\<`T`, `TR`\>[]
|
|
10
|
-
|
|
11
|
-
Defined in: [investments/investment-reasons-decorator.ts:82](https://github.com/kvernon/realty-investor-timeline/blob/c7446a8a5576468ac5874a2dd8323180fa97a55b/src/investments/investment-reasons-decorator.ts#L82)
|
|
12
|
-
|
|
13
|
-
used to get the value for all properties
|
|
14
|
-
|
|
15
|
-
## Type Parameters
|
|
16
|
-
|
|
17
|
-
• **T** _extends_ [`IRentalPropertyEntity`](../../../properties/i-rental-property-entity/interfaces/IRentalPropertyEntity.md) & `object`
|
|
18
|
-
|
|
19
|
-
• **TR** _extends_ [`PurchaseRuleTypes`](../../../rules/purchase-rule-types/enumerations/PurchaseRuleTypes.md) \| [`HoldRuleTypes`](../../../rules/hold-rule-types/enumerations/HoldRuleTypes.md)
|
|
20
|
-
|
|
21
|
-
## Parameters
|
|
22
|
-
|
|
23
|
-
### target
|
|
24
|
-
|
|
25
|
-
`T`
|
|
26
|
-
|
|
27
|
-
### metaDataNameSuffix
|
|
28
|
-
|
|
29
|
-
`string`
|
|
30
|
-
|
|
31
|
-
## Returns
|
|
32
|
-
|
|
33
|
-
[`IReasonToRule`](../../reason-to-rule/interfaces/IReasonToRule.md)\<`T`, `TR`\>[]
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
[**@cubedelement.com/realty-investor-timeline**](../../../index.md)
|
|
2
|
-
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
[@cubedelement.com/realty-investor-timeline](../../../modules.md) / [investments/investment-reasons-decorator](../index.md) / getInvestmentReasonsForPurchaseTypes
|
|
6
|
-
|
|
7
|
-
# Function: getInvestmentReasonsForPurchaseTypes()
|
|
8
|
-
|
|
9
|
-
> **getInvestmentReasonsForPurchaseTypes**\<`T`\>(`target`): [`IReasonToRule`](../../reason-to-rule/interfaces/IReasonToRule.md)\<`T`, [`PurchaseRuleTypes`](../../../rules/purchase-rule-types/enumerations/PurchaseRuleTypes.md)\>[]
|
|
10
|
-
|
|
11
|
-
Defined in: [investments/investment-reasons-decorator.ts:128](https://github.com/kvernon/realty-investor-timeline/blob/c7446a8a5576468ac5874a2dd8323180fa97a55b/src/investments/investment-reasons-decorator.ts#L128)
|
|
12
|
-
|
|
13
|
-
## Type Parameters
|
|
14
|
-
|
|
15
|
-
• **T** _extends_ [`IRentalPropertyEntity`](../../../properties/i-rental-property-entity/interfaces/IRentalPropertyEntity.md) & `object`
|
|
16
|
-
|
|
17
|
-
## Parameters
|
|
18
|
-
|
|
19
|
-
### target
|
|
20
|
-
|
|
21
|
-
`T`
|
|
22
|
-
|
|
23
|
-
## Returns
|
|
24
|
-
|
|
25
|
-
[`IReasonToRule`](../../reason-to-rule/interfaces/IReasonToRule.md)\<`T`, [`PurchaseRuleTypes`](../../../rules/purchase-rule-types/enumerations/PurchaseRuleTypes.md)\>[]
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
[**@cubedelement.com/realty-investor-timeline**](../../index.md)
|
|
2
|
-
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
[@cubedelement.com/realty-investor-timeline](../../modules.md) / investments/investment-reasons-decorator
|
|
6
|
-
|
|
7
|
-
# investments/investment-reasons-decorator
|
|
8
|
-
|
|
9
|
-
## Type Aliases
|
|
10
|
-
|
|
11
|
-
- [PropertyDecoratorType](type-aliases/PropertyDecoratorType.md)
|
|
12
|
-
|
|
13
|
-
## Functions
|
|
14
|
-
|
|
15
|
-
- [getInvestmentReasons](functions/getInvestmentReasons.md)
|
|
16
|
-
- [getInvestmentReasonsForPurchaseTypes](functions/getInvestmentReasonsForPurchaseTypes.md)
|
|
17
|
-
- [InvestmentReasonForHoldRuleTypes](functions/InvestmentReasonForHoldRuleTypes.md)
|
|
18
|
-
- [InvestmentReasonForPurchaseRuleTypes](functions/InvestmentReasonForPurchaseRuleTypes.md)
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
[**@cubedelement.com/realty-investor-timeline**](../../../index.md)
|
|
2
|
-
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
[@cubedelement.com/realty-investor-timeline](../../../modules.md) / [investments/investment-reasons-decorator](../index.md) / PropertyDecoratorType
|
|
6
|
-
|
|
7
|
-
# Type Alias: PropertyDecoratorType()\<T\>
|
|
8
|
-
|
|
9
|
-
> **PropertyDecoratorType**\<`T`\>: (`target`, `propertyKey`) => `any`
|
|
10
|
-
|
|
11
|
-
Defined in: [investments/investment-reasons-decorator.ts:12](https://github.com/kvernon/realty-investor-timeline/blob/c7446a8a5576468ac5874a2dd8323180fa97a55b/src/investments/investment-reasons-decorator.ts#L12)
|
|
12
|
-
|
|
13
|
-
## Type Parameters
|
|
14
|
-
|
|
15
|
-
• **T** _extends_ [`IRentalPropertyEntity`](../../../properties/i-rental-property-entity/interfaces/IRentalPropertyEntity.md)
|
|
16
|
-
|
|
17
|
-
## Parameters
|
|
18
|
-
|
|
19
|
-
### target
|
|
20
|
-
|
|
21
|
-
`T`
|
|
22
|
-
|
|
23
|
-
### propertyKey
|
|
24
|
-
|
|
25
|
-
keyof `T` & `string`
|
|
26
|
-
|
|
27
|
-
## Returns
|
|
28
|
-
|
|
29
|
-
`any`
|