65 lines
803 B
Markdown
65 lines
803 B
Markdown
|
# 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
|
||
|
}
|
||
|
```
|