Files

117 lines
4.4 KiB
Go

package schema
import (
"time"
"github.com/uptrace/bun"
)
type Sport struct {
bun.BaseModel `bun:"table:sport"`
ID string `bun:"id,pk"`
CreatedAt time.Time `bun:"created_date,nullzero,notnull,default:current_timestamp"`
UpdatedAt time.Time `bun:"last_modified_date,nullzero,notnull,default:current_timestamp"`
Version int `bun:"version,default:0"`
Teams []Team `bun:"rel:has-many,join:id=sport_id"`
Positions []FieldPosition `bun:"rel:has-many,join:id=sport_id"`
}
type Team struct {
bun.BaseModel `bun:"table:team"`
ID string `bun:"id,pk"`
CreatedAt time.Time `bun:"created_date,nullzero,notnull,default:current_timestamp"`
UpdatedAt time.Time `bun:"last_modified_date,nullzero,notnull,default:current_timestamp"`
Version int `bun:"version,default:0"`
Name string `bun:"name"`
Shortname string `bun:"short_name"`
Roosters []Rooster `bun:"rel:has-many,join:id=team_id"`
SportID *string `bun:"sport_id"`
Sport *Sport `bun:"rel:belongs-to,join:sport_id=id"`
}
type FieldPosition struct {
bun.BaseModel `bun:"table:field_position"`
ID string `bun:"id,pk"`
CreatedAt time.Time `bun:"created_date,nullzero,notnull,default:current_timestamp"`
UpdatedAt time.Time `bun:"last_modified_date,nullzero,notnull,default:current_timestamp"`
Version int `bun:"version,default:0"`
Name string `bun:"name"`
Shortname string `bun:"short_name"`
SportID *string `bun:"sport_id"`
Sport *Sport `bun:"rel:belongs-to,join:sport_id=id"`
Roosters []Rooster `bun:"rel:has-many,join:id=position_id"`
}
type Player struct {
bun.BaseModel `bun:"table:player"`
ID string `bun:"id,pk"`
CreatedAt time.Time `bun:"created_date,nullzero,notnull,default:current_timestamp"`
UpdatedAt time.Time `bun:"last_modified_date,nullzero,notnull,default:current_timestamp"`
Version int `bun:"version,default:0"`
Firstname string `bun:"first_name"`
Lastname string `bun:"last_name"`
Roosters []Rooster `bun:"rel:has-many,join:id=player_id"`
}
type Rooster struct {
bun.BaseModel `bun:"table:rooster"`
ID string `bun:"id,pk"`
CreatedAt time.Time `bun:"created_date,nullzero,notnull,default:current_timestamp"`
UpdatedAt time.Time `bun:"last_modified_date,nullzero,notnull,default:current_timestamp"`
Version int `bun:"version,default:0"`
Year int `bun:"year"`
TeamID *string `bun:"team_id"`
Team *Team `bun:"rel:belongs-to,join:team_id=id"`
PlayerID *string `bun:"player_id"`
Player *Player `bun:"rel:belongs-to,join:player_id=id"`
PositionID *string `bun:"position_id"`
Position *FieldPosition `bun:"rel:belongs-to,join:position_id=id"`
}
type CardSet struct {
bun.BaseModel `bun:"table:card_set"`
ID string `bun:"id,pk"`
CreatedAt time.Time `bun:"created_date,nullzero,notnull,default:current_timestamp"`
UpdatedAt time.Time `bun:"last_modified_date,nullzero,notnull,default:current_timestamp"`
Version int `bun:"version,default:0"`
Name string `bun:"name"`
ParallelSet bool `bun:"parallel_set"`
InsertSet bool `bun:"insert_set"`
VendorID *string `bun:"vendor_id"`
Vendor *Vendor `bun:"rel:belongs-to,join:vendor_id=id"`
}
type Vendor struct {
bun.BaseModel `bun:"table:vendor"`
ID string `bun:"id,pk"`
CreatedAt time.Time `bun:"created_date,nullzero,notnull,default:current_timestamp"`
UpdatedAt time.Time `bun:"last_modified_date,nullzero,notnull,default:current_timestamp"`
Version int `bun:"version,default:0"`
Name string `bun:"name"`
CardSets []CardSet `bun:"rel:has-many,join:id=vendor_id"`
}
type Card struct {
bun.BaseModel `bun:"table:card"`
ID string `bun:"id,pk"`
CreatedAt time.Time `bun:"created_date,nullzero,notnull,default:current_timestamp"`
UpdatedAt time.Time `bun:"last_modified_date,nullzero,notnull,default:current_timestamp"`
Version int `bun:"version,default:0"`
CardNumber int `bun:"card_number"`
Year int `bun:"year"`
VendorID *string `bun:"vendor_id"`
Vendor *Vendor `bun:"rel:belongs-to,join:vendor_id=id"`
CardSetID *string `bun:"card_set_id"`
CardSet *CardSet `bun:"rel:belongs-to,join:card_set_id=id"`
RoosterID *string `bun:"rooster_id"`
Rooster *Rooster `bun:"rel:belongs-to,join:rooster_id=id"`
}