db: add more tables
This commit is contained in:
parent
80a5f1f8a8
commit
dac36db284
@ -27,6 +27,17 @@ type Event struct {
|
|||||||
TotalAmount sql.NullInt32
|
TotalAmount sql.NullInt32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type Expense struct {
|
||||||
|
ID int32
|
||||||
|
CreatedAt time.Time
|
||||||
|
UpdatedAt time.Time
|
||||||
|
Amount int32
|
||||||
|
Currency string
|
||||||
|
EventID int32
|
||||||
|
Name sql.NullInt32
|
||||||
|
Place sql.NullInt32
|
||||||
|
}
|
||||||
|
|
||||||
type Participation struct {
|
type Participation struct {
|
||||||
ID int32
|
ID int32
|
||||||
UserID int32
|
UserID int32
|
||||||
@ -36,6 +47,17 @@ type Participation struct {
|
|||||||
UpdatedAt time.Time
|
UpdatedAt time.Time
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type Transaction struct {
|
||||||
|
ID int32
|
||||||
|
ExpenseID int32
|
||||||
|
UserID int32
|
||||||
|
Amount int32
|
||||||
|
Currency string
|
||||||
|
IsIncome bool
|
||||||
|
CreatedAt time.Time
|
||||||
|
UpdatedAt time.Time
|
||||||
|
}
|
||||||
|
|
||||||
type User struct {
|
type User struct {
|
||||||
ID int32
|
ID int32
|
||||||
Email string
|
Email string
|
||||||
|
@ -32,8 +32,12 @@ type ExpenseRequest struct {
|
|||||||
Detail ExpenseDetail `json:"detail"`
|
Detail ExpenseDetail `json:"detail"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// {{{ Entity
|
||||||
|
|
||||||
type ExpenseEntity struct {
|
type ExpenseEntity struct {
|
||||||
ID int
|
ID int
|
||||||
|
CreatedAt time.Time
|
||||||
|
UpdatedAt time.Time
|
||||||
|
|
||||||
Amount int
|
Amount int
|
||||||
Currency string
|
Currency string
|
||||||
@ -42,9 +46,6 @@ type ExpenseEntity struct {
|
|||||||
// ExpenseDetail
|
// ExpenseDetail
|
||||||
Name string
|
Name string
|
||||||
Place string
|
Place string
|
||||||
|
|
||||||
CreatedAt time.Time
|
|
||||||
UpdatedAt time.Time
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type ExpenseDetail struct {
|
type ExpenseDetail struct {
|
||||||
@ -52,8 +53,11 @@ type ExpenseDetail struct {
|
|||||||
Place string `json:"place"`
|
Place string `json:"place"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// }}}
|
||||||
type Expense struct {
|
type Expense struct {
|
||||||
ID int
|
ID int
|
||||||
|
CreatedAt time.Time
|
||||||
|
UpdatedAt time.Time
|
||||||
|
|
||||||
Amount Money
|
Amount Money
|
||||||
|
|
||||||
@ -65,7 +69,4 @@ type Expense struct {
|
|||||||
|
|
||||||
EventID int
|
EventID int
|
||||||
Detail ExpenseDetail
|
Detail ExpenseDetail
|
||||||
|
|
||||||
CreatedAt time.Time
|
|
||||||
UpdatedAt time.Time
|
|
||||||
}
|
}
|
||||||
|
@ -24,18 +24,25 @@ package model
|
|||||||
|
|
||||||
import "time"
|
import "time"
|
||||||
|
|
||||||
|
// {{{ Entity
|
||||||
|
|
||||||
type TransactionEntity Transaction
|
type TransactionEntity Transaction
|
||||||
|
|
||||||
// Transaction is the association between Expenses and Users
|
// }}}
|
||||||
|
// {{{ Domain object
|
||||||
|
|
||||||
type Transaction struct {
|
type Transaction struct {
|
||||||
ID int
|
ID int
|
||||||
|
|
||||||
ExpenseID Expense
|
ExpenseID int
|
||||||
UserID int
|
UserID int
|
||||||
Amount int
|
Amount int
|
||||||
Currency string
|
Currency string
|
||||||
IsIncome bool
|
IsIncome bool // To note that the direction of the money (payment or income)
|
||||||
|
|
||||||
CreatedAt time.Time
|
CreatedAt time.Time
|
||||||
UpdatedAt time.Time
|
UpdatedAt time.Time
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// }}}
|
||||||
|
// Transaction is the association between Expenses and Users
|
||||||
|
@ -0,0 +1,2 @@
|
|||||||
|
CREATE TABLE "transaction";
|
||||||
|
|
@ -0,0 +1,14 @@
|
|||||||
|
CREATE TABLE "transaction" (
|
||||||
|
"id" serial NOT NULL,
|
||||||
|
PRIMARY KEY ("id"),
|
||||||
|
"expense_id" integer NOT NULL,
|
||||||
|
"user_id" integer NOT NULL,
|
||||||
|
"amount" integer NOT NULL,
|
||||||
|
"currency" character varying(255) NOT NULL,
|
||||||
|
"is_income" boolean NOT NULL DEFAULT FALSE,
|
||||||
|
"created_at" date NOT NULL,
|
||||||
|
"updated_at" date NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE "transaction"
|
||||||
|
ADD FOREIGN KEY ("user_id") REFERENCES "user" ("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
@ -0,0 +1 @@
|
|||||||
|
DROP TABLE "expense";
|
@ -0,0 +1,14 @@
|
|||||||
|
CREATE TABLE "expense" (
|
||||||
|
"id" serial NOT NULL,
|
||||||
|
PRIMARY KEY ("id"),
|
||||||
|
"created_at" date NOT NULL,
|
||||||
|
"updated_at" date NOT NULL,
|
||||||
|
"amount" integer NOT NULL,
|
||||||
|
"currency" character varying NOT NULL,
|
||||||
|
"event_id" integer NOT NULL,
|
||||||
|
"name" integer NULL,
|
||||||
|
"place" integer NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE "expense"
|
||||||
|
ADD FOREIGN KEY ("event_id") REFERENCES "event" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
@ -0,0 +1,2 @@
|
|||||||
|
ALTER TABLE "transaction"
|
||||||
|
ADD FOREIGN KEY ("expense_id") REFERENCES "expense" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
Loading…
Reference in New Issue
Block a user