fin-check-api/types/types.go

162 lines
5.7 KiB
Go

package types
import "time"
// User struct for requests
type User struct {
Username string `json:"username" binding:"required" example:"testUser"`
Password string `json:"password" binding:"required" example:"strongPassLol"`
}
// User Account
type Account struct {
ID uint `json:"id" example:"1"`
Token string `json:"token" example:"Fvs-MnxiEs5dnqMp2mSDIJigPbiIUs6Snk1xxiqPmUc"`
Username string `json:"username" example:"testUser"`
}
type Message struct {
Info string `json:"info" example:"Success!"`
}
type ErrorResponse struct {
Message string `json:"message" example:"Error: you stink"`
}
type DbCard struct {
ID uint `json:"id" example:"1"`
Name string `json:"name" example:"CreditCard"`
Balance uint64 `json:"balance" example:"1000"`
HaveCreditLine bool `json:"have_credit_line" example:"true"`
CreditLine uint64 `json:"credit_line" example:"500000"`
LastDigits string `json:"last_digits" example:"1111"`
CurrencyID uint `json:"currency_id" example:"1"`
Currency DbCurrency `json:"currency"`
// Purely UI things
DisplayName string `json:"display_name" example:"CreditCard •4444"`
}
type DbCategory struct {
ID uint `json:"id" example:"1"`
Name string `json:"name" example:"Moldova"`
// Parent is used as a infinite sub-category structure
// Can be 0
ParentID uint `json:"parent_id" example:"0"`
}
type DbDebt struct {
ID uint `json:"id" example:"1"`
CardID uint `json:"card_id" example:"1"`
Comment string `json:"comment" example:"pizza"`
Value uint64 `json:"value" example:"20000"`
IOwe bool `json:"i_owe" example:"true"`
Date time.Time `json:"date" example:"29/11/2001 12:00"`
DateEnd time.Time `json:"date_end" example:"29/12/2001 12:00"`
Finished bool `json:"finished" example:"false"`
}
type DbIncome struct {
ID uint `json:"id" example:"1"`
CardID uint `json:"card_id" example:"1"`
Comment string `json:"comment" example:"pizza"`
Value uint64 `json:"value" example:"20000"`
Date time.Time `json:"date" example:"29/11/2001 12:00"`
}
type DbType struct {
ID uint `json:"id" example:"1"`
Name string `json:"name" example:"Medicine"`
Comment string `json:"comment" example:""`
Color string `json:"color" example:"red"`
}
type Session struct {
ID string `json:"id"`
UserID uint `json:"user_id" example:"1"`
}
type DbExpense struct {
ID uint `json:"id" example:"1"`
CardID uint `json:"card_id" example:"1"`
TypeID uint `json:"type_id" example:"1"`
Value uint64 `json:"value" example:"20000"`
Comment string `json:"comment" example:"pizza"`
Date time.Time `json:"date" example:"29/11/2001 12:00"`
// Purely UI things
Card DbCard `json:"card"`
ShowValue string `json:"show_value" example:"10.35$"`
}
type DbTransfer struct {
ID uint `json:"id" example:"1"`
FromCardID uint `json:"from_card_id" example:"1"`
ToCardID uint `json:"to_card_id" example:"1"`
Value uint64 `json:"value" example:"20000"`
FromValue uint64 `json:"from_value" example:"20000"`
ToValue uint64 `json:"to_value" example:"20000"`
Date time.Time `json:"date" example:"29/11/2001 12:00"`
// Purely UI things
ShowValue string `json:"show_value" example:"10.35$"`
HaveDifferentCurrencies bool `json:"have_diff_currs" example:"false"`
FromCard DbCard `json:"from_card"`
ToCard DbCard `json:"to_card"`
}
type DbItem struct {
ID uint `json:"id" example:"1"`
CategoryID uint `json:"category_id" example:"1"`
CurrentPriceID uint `json:"current_price_id" example:"1"`
TypeID uint `json:"type_id" example:"1"`
Name string `json:"name" example:"pizza"`
Comment string `json:"comment" example:"this is an item"`
MetricType uint8 `json:"metric_type" example:"0"`
MetricValue uint64 `json:"metric_value" example:"10000"`
Proteins uint64 `json:"proteins" example:"0"`
Carbs uint64 `json:"carbs" example:"0"`
Fats uint64 `json:"fats" example:"0"`
Price uint64 `json:"price" example:"10050"`
}
type DbItemSearch struct {
CategoryID uint `json:"category_id" example:"1"`
TypeID uint `json:"type_id" example:"1"`
}
type DbMetric struct {
Value uint8 `json:"value" example:"1"`
Name string `json:"name" example:"Kilogram"`
Short string `json:"short" example:"kg"`
}
type DbCurrency struct {
ID uint `json:"id" example:"1"`
Name string `json:"name" example:"Dollar"`
ISOName string `json:"iso_name" example:"USD"`
Symbol string `json:"symbol" example:"$"`
}
type Payment struct {
ID uint `json:"id" example:"1"`
CardID uint `json:"card_id" example:"1"`
CategoryID uint `json:"category_id" example:"1"`
Title string `json:"title" example:"some title"`
Description string `json:"descr" example:"i bought some title for 20$"`
Note string `json:"note" example:"no i did not hit domain"`
Date time.Time `json:"date" example:"29/11/2001 12:00"`
Items []ItemBought `json:"items" example:"[]"`
}
type ItemBought struct {
ID uint `json:"id" example:"1"`
NewName string `json:"new_name" example:"itemName"`
NewComment string `json:"new_comment" example:"itemName"`
ItemID uint `json:"item_id" example:"0"`
PaymentID uint `json:"payment_id" example:"1"`
TypeID uint `json:"type_id" example:"1"`
Price uint64 `json:"price" example:"1025"`
Quantity uint `json:"quantity" example:"2"`
TotalCost uint64 `json:"total_cost" example:"2050"`
MetricType uint8 `json:"metric_type" example:"0"`
MetricValue uint64 `json:"metric_value" example:"100"`
}