feat: add transaction and participation associations
This commit is contained in:
		| @ -26,6 +26,7 @@ import "time" | |||||||
|  |  | ||||||
| type Event struct { | type Event struct { | ||||||
| 	ID int | 	ID int | ||||||
|  |  | ||||||
| 	Name            string | 	Name            string | ||||||
| 	Description     string | 	Description     string | ||||||
| 	Users           []*User | 	Users           []*User | ||||||
| @ -33,6 +34,7 @@ type Event struct { | |||||||
| 	TotalAmount     Money | 	TotalAmount     Money | ||||||
| 	DefaultCurrency Currency | 	DefaultCurrency Currency | ||||||
| 	CreatedBy       User | 	CreatedBy       User | ||||||
|  |  | ||||||
| 	CreatedAt time.Time | 	CreatedAt time.Time | ||||||
| 	UpdatedAt time.Time | 	UpdatedAt time.Time | ||||||
| } | } | ||||||
|  | |||||||
| @ -31,12 +31,14 @@ type ExpenseDetail struct { | |||||||
|  |  | ||||||
| type Expense struct { | type Expense struct { | ||||||
| 	ID int | 	ID int | ||||||
|  |  | ||||||
| 	Amount       Money | 	Amount       Money | ||||||
| 	Currency     Currency | 	Currency     Currency | ||||||
| 	PayerIDs     []int | 	PayerIDs     []int | ||||||
| 	RecipientIDs []int | 	RecipientIDs []int | ||||||
| 	EventID      int | 	EventID      int | ||||||
| 	Detail       ExpenseDetail | 	Detail       ExpenseDetail | ||||||
|  |  | ||||||
| 	CreatedAt time.Time | 	CreatedAt time.Time | ||||||
| 	UpdatedAt time.Time | 	UpdatedAt time.Time | ||||||
| } | } | ||||||
|  | |||||||
							
								
								
									
										37
									
								
								internal/howmuch/model/participation.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								internal/howmuch/model/participation.go
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,37 @@ | |||||||
|  | // MIT License | ||||||
|  | // | ||||||
|  | // Copyright (c) 2024 vinchent <vinchent@vinchent.xyz> | ||||||
|  | // | ||||||
|  | // Permission is hereby granted, free of charge, to any person obtaining a copy | ||||||
|  | // of this software and associated documentation files (the "Software"), to deal | ||||||
|  | // in the Software without restriction, including without limitation the rights | ||||||
|  | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||||
|  | // copies of the Software, and to permit persons to whom the Software is | ||||||
|  | // furnished to do so, subject to the following conditions: | ||||||
|  | // | ||||||
|  | // The above copyright notice and this permission notice shall be included in all | ||||||
|  | // copies or substantial portions of the Software. | ||||||
|  | // | ||||||
|  | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||||
|  | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||||
|  | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||||
|  | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||||
|  | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||||
|  | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||||||
|  | // SOFTWARE. | ||||||
|  |  | ||||||
|  | package model | ||||||
|  |  | ||||||
|  | import "time" | ||||||
|  |  | ||||||
|  | // Participation is the association between Users and Events | ||||||
|  | type Participation struct { | ||||||
|  | 	ID int | ||||||
|  |  | ||||||
|  | 	UserID          int | ||||||
|  | 	EventID         int | ||||||
|  | 	InvitedByUserID int | ||||||
|  |  | ||||||
|  | 	CreatedAt time.Time | ||||||
|  | 	UpdatedAt time.Time | ||||||
|  | } | ||||||
							
								
								
									
										38
									
								
								internal/howmuch/model/transaction.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								internal/howmuch/model/transaction.go
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,38 @@ | |||||||
|  | // MIT License | ||||||
|  | // | ||||||
|  | // Copyright (c) 2024 vinchent <vinchent@vinchent.xyz> | ||||||
|  | // | ||||||
|  | // Permission is hereby granted, free of charge, to any person obtaining a copy | ||||||
|  | // of this software and associated documentation files (the "Software"), to deal | ||||||
|  | // in the Software without restriction, including without limitation the rights | ||||||
|  | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||||
|  | // copies of the Software, and to permit persons to whom the Software is | ||||||
|  | // furnished to do so, subject to the following conditions: | ||||||
|  | // | ||||||
|  | // The above copyright notice and this permission notice shall be included in all | ||||||
|  | // copies or substantial portions of the Software. | ||||||
|  | // | ||||||
|  | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||||
|  | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||||
|  | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||||
|  | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||||
|  | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||||
|  | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||||||
|  | // SOFTWARE. | ||||||
|  |  | ||||||
|  | package model | ||||||
|  |  | ||||||
|  | import "time" | ||||||
|  |  | ||||||
|  | // Transaction is the association between Expenses and Users | ||||||
|  | type Transaction struct { | ||||||
|  | 	ID int | ||||||
|  |  | ||||||
|  | 	ExpenseID Expense | ||||||
|  | 	PayerID   int | ||||||
|  | 	Amount    Money | ||||||
|  | 	Currency  Currency | ||||||
|  |  | ||||||
|  | 	CreatedAt time.Time | ||||||
|  | 	UpdatedAt time.Time | ||||||
|  | } | ||||||
| @ -39,10 +39,12 @@ type UserExistDTO struct { | |||||||
| // User model | // User model | ||||||
| type User struct { | type User struct { | ||||||
| 	ID int | 	ID int | ||||||
|  |  | ||||||
| 	Email     string | 	Email     string | ||||||
| 	FirstName string | 	FirstName string | ||||||
| 	LastName  string | 	LastName  string | ||||||
| 	Password  string | 	Password  string | ||||||
|  |  | ||||||
| 	CreatedAt time.Time | 	CreatedAt time.Time | ||||||
| 	UpdatedAt time.Time | 	UpdatedAt time.Time | ||||||
| } | } | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user