2021-04-14 20:47:53 +00:00
|
|
|
# User
|
|
|
|
|
|
|
|
```ts
|
|
|
|
type User = {
|
|
|
|
id: uuid
|
|
|
|
name: string
|
|
|
|
email: string
|
|
|
|
password: string
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
# UserAccount
|
|
|
|
|
|
|
|
```ts
|
|
|
|
type UserAcccount = {
|
|
|
|
user_id: uuid
|
|
|
|
account_id: uuid
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
- join table between User <-> Account.
|
|
|
|
- use case: account belongs to more than 1 person
|
|
|
|
|
|
|
|
# Account
|
|
|
|
|
|
|
|
```ts
|
|
|
|
type Account = {
|
|
|
|
id: uuid
|
|
|
|
name: string // example: Household Expenses
|
|
|
|
details: string
|
|
|
|
income: integer // cents // total income
|
|
|
|
expenses: integer // cents // total expenses
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
- belongs to User
|
|
|
|
- has many transactions
|
|
|
|
|
|
|
|
# Stack
|
|
|
|
|
|
|
|
- belongs to account
|
|
|
|
|
|
|
|
```ts
|
|
|
|
type Stack = {
|
|
|
|
id: uuid
|
|
|
|
account_id: uuid
|
|
|
|
name: string
|
|
|
|
details: string
|
|
|
|
amount: integer
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
# Transaction
|
|
|
|
|
|
|
|
- belongs to Stack
|
|
|
|
|
|
|
|
```ts
|
|
|
|
type Transaction = {
|
|
|
|
id: uuid
|
|
|
|
stack_id: string
|
|
|
|
amount: integer // cents
|
|
|
|
details: string
|
2021-04-15 00:07:12 +00:00
|
|
|
created_at: UTC datetime ie: 2021-04-15T00:06:21.852620Z
|
2021-04-14 20:47:53 +00:00
|
|
|
}
|
|
|
|
```
|