db: add more tables
This commit is contained in:
parent
80a5f1f8a8
commit
dac36db284
@ -27,6 +27,17 @@ type Event struct {
|
||||
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 {
|
||||
ID int32
|
||||
UserID int32
|
||||
@ -36,6 +47,17 @@ type Participation struct {
|
||||
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 {
|
||||
ID int32
|
||||
Email string
|
||||
|
@ -32,8 +32,12 @@ type ExpenseRequest struct {
|
||||
Detail ExpenseDetail `json:"detail"`
|
||||
}
|
||||
|
||||
// {{{ Entity
|
||||
|
||||
type ExpenseEntity struct {
|
||||
ID int
|
||||
ID int
|
||||
CreatedAt time.Time
|
||||
UpdatedAt time.Time
|
||||
|
||||
Amount int
|
||||
Currency string
|
||||
@ -42,9 +46,6 @@ type ExpenseEntity struct {
|
||||
// ExpenseDetail
|
||||
Name string
|
||||
Place string
|
||||
|
||||
CreatedAt time.Time
|
||||
UpdatedAt time.Time
|
||||
}
|
||||
|
||||
type ExpenseDetail struct {
|
||||
@ -52,8 +53,11 @@ type ExpenseDetail struct {
|
||||
Place string `json:"place"`
|
||||
}
|
||||
|
||||
// }}}
|
||||
type Expense struct {
|
||||
ID int
|
||||
ID int
|
||||
CreatedAt time.Time
|
||||
UpdatedAt time.Time
|
||||
|
||||
Amount Money
|
||||
|
||||
@ -65,7 +69,4 @@ type Expense struct {
|
||||
|
||||
EventID int
|
||||
Detail ExpenseDetail
|
||||
|
||||
CreatedAt time.Time
|
||||
UpdatedAt time.Time
|
||||
}
|
||||
|
@ -24,18 +24,25 @@ package model
|
||||
|
||||
import "time"
|
||||
|
||||
// {{{ Entity
|
||||
|
||||
type TransactionEntity Transaction
|
||||
|
||||
// Transaction is the association between Expenses and Users
|
||||
// }}}
|
||||
// {{{ Domain object
|
||||
|
||||
type Transaction struct {
|
||||
ID int
|
||||
|
||||
ExpenseID Expense
|
||||
ExpenseID int
|
||||
UserID int
|
||||
Amount int
|
||||
Currency string
|
||||
IsIncome bool
|
||||
IsIncome bool // To note that the direction of the money (payment or income)
|
||||
|
||||
CreatedAt 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