234 lines
6.6 KiB
Go
234 lines
6.6 KiB
Go
package domain
|
|
|
|
import (
|
|
"time"
|
|
|
|
dbgen "github.com/SamuelTariku/FortuneBet-Backend/gen/db"
|
|
)
|
|
|
|
// The ID and the Bet365 IDs we have here are both gotten from the betapi
|
|
type LeagueWithSettings struct {
|
|
ID int64
|
|
Name string
|
|
CompanyID int64
|
|
CountryCode ValidString
|
|
Bet365ID ValidInt32
|
|
SportID int32
|
|
IsActive bool
|
|
IsFeatured bool
|
|
DefaultIsActive bool
|
|
DefaultIsFeatured bool
|
|
UpdatedAt time.Time
|
|
}
|
|
type LeagueWithSettingsRes struct {
|
|
ID int64 `json:"id" example:"1"`
|
|
Name string `json:"name" example:"BPL"`
|
|
CompanyID int64 `json:"company_id" example:"1"`
|
|
CountryCode string `json:"cc" example:"uk"`
|
|
Bet365ID int32 `json:"bet365_id" example:"1121"`
|
|
IsActive bool `json:"is_active" example:"false"`
|
|
SportID int32 `json:"sport_id" example:"1"`
|
|
IsFeatured bool `json:"is_featured" example:"false"`
|
|
DefaultIsActive bool `json:"default_is_active" example:"false"`
|
|
DefaultIsFeatured bool `json:"default_is_featured" example:"false"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
type BaseLeague struct {
|
|
ID int64
|
|
Name string
|
|
CountryCode ValidString
|
|
Bet365ID ValidInt32
|
|
SportID int32
|
|
DefaultIsActive bool
|
|
DefaultIsFeatured bool
|
|
}
|
|
|
|
type BaseLeagueRes struct {
|
|
ID int64 `json:"id" example:"1"`
|
|
Name string `json:"name" example:"BPL"`
|
|
CountryCode string `json:"cc" example:"uk"`
|
|
Bet365ID int32 `json:"bet365_id" example:"1121"`
|
|
SportID int32 `json:"sport_id" example:"1"`
|
|
DefaultIsActive bool `json:"default_is_active" example:"false"`
|
|
DefaultIsFeatured bool `json:"default_is_featured" example:"false"`
|
|
}
|
|
|
|
type CreateLeague struct {
|
|
ID int64
|
|
Name string
|
|
CountryCode ValidString
|
|
Bet365ID ValidInt32
|
|
SportID int32
|
|
DefaultIsActive bool
|
|
DefaultIsFeatured bool
|
|
}
|
|
|
|
type LeagueSettings struct {
|
|
CompanyID int64
|
|
LeagueID int64
|
|
IsActive ValidBool
|
|
IsFeatured ValidBool
|
|
UpdatedAt time.Time
|
|
}
|
|
type CreateLeagueSettings struct {
|
|
CompanyID int64
|
|
LeagueID int64
|
|
IsActive ValidBool
|
|
IsFeatured ValidBool
|
|
}
|
|
|
|
type UpdateLeague struct {
|
|
ID int64 `json:"id" example:"1"`
|
|
Name ValidString `json:"name" example:"BPL"`
|
|
CountryCode ValidString `json:"cc" example:"uk"`
|
|
Bet365ID ValidInt32 `json:"bet365_id" example:"1121"`
|
|
IsActive ValidBool `json:"is_active" example:"false"`
|
|
IsFeatured ValidBool `json:"is_featured" example:"false"`
|
|
SportID ValidInt32 `json:"sport_id" example:"1"`
|
|
}
|
|
|
|
type LeagueFilter struct {
|
|
Query ValidString
|
|
CountryCode ValidString
|
|
SportID ValidInt32
|
|
IsActive ValidBool
|
|
IsFeatured ValidBool
|
|
Limit ValidInt64
|
|
Offset ValidInt64
|
|
}
|
|
|
|
func ConvertCreateLeague(league CreateLeague) dbgen.InsertLeagueParams {
|
|
return dbgen.InsertLeagueParams{
|
|
ID: league.ID,
|
|
Name: league.Name,
|
|
CountryCode: league.CountryCode.ToPG(),
|
|
Bet365ID: league.Bet365ID.ToPG(),
|
|
SportID: league.SportID,
|
|
DefaultIsActive: league.DefaultIsActive,
|
|
DefaultIsFeatured: league.DefaultIsFeatured,
|
|
}
|
|
}
|
|
|
|
func ConvertCreateLeagueSettings(leagueSetting CreateLeagueSettings) dbgen.InsertLeagueSettingsParams {
|
|
return dbgen.InsertLeagueSettingsParams{
|
|
CompanyID: leagueSetting.CompanyID,
|
|
LeagueID: leagueSetting.LeagueID,
|
|
IsActive: leagueSetting.IsActive.ToPG(),
|
|
IsFeatured: leagueSetting.IsFeatured.ToPG(),
|
|
}
|
|
}
|
|
|
|
func ConvertDBBaseLeague(league dbgen.League) BaseLeague {
|
|
return BaseLeague{
|
|
ID: league.ID,
|
|
Name: league.Name,
|
|
CountryCode: ValidString{
|
|
Value: league.CountryCode.String,
|
|
Valid: league.CountryCode.Valid,
|
|
},
|
|
Bet365ID: ValidInt32{
|
|
Value: league.Bet365ID.Int32,
|
|
Valid: league.Bet365ID.Valid,
|
|
},
|
|
SportID: league.SportID,
|
|
DefaultIsActive: league.DefaultIsActive,
|
|
DefaultIsFeatured: league.DefaultIsFeatured,
|
|
}
|
|
}
|
|
|
|
func ConvertDBBaseLeagues(leagues []dbgen.League) []BaseLeague {
|
|
result := make([]BaseLeague, len(leagues))
|
|
for i, league := range leagues {
|
|
result[i] = ConvertDBBaseLeague(league)
|
|
}
|
|
return result
|
|
}
|
|
|
|
func ConvertDBLeagueWithSetting(lws dbgen.GetAllLeaguesWithSettingsRow) LeagueWithSettings {
|
|
return LeagueWithSettings{
|
|
ID: lws.ID,
|
|
Name: lws.Name,
|
|
CompanyID: lws.CompanyID.Int64,
|
|
CountryCode: ValidString{
|
|
Value: lws.CountryCode.String,
|
|
Valid: lws.CountryCode.Valid,
|
|
},
|
|
Bet365ID: ValidInt32{
|
|
Value: lws.Bet365ID.Int32,
|
|
Valid: lws.Bet365ID.Valid,
|
|
},
|
|
IsActive: lws.IsActive,
|
|
SportID: lws.SportID,
|
|
IsFeatured: lws.IsFeatured,
|
|
UpdatedAt: lws.UpdatedAt.Time,
|
|
|
|
DefaultIsActive: lws.DefaultIsActive,
|
|
DefaultIsFeatured: lws.DefaultIsFeatured,
|
|
}
|
|
}
|
|
|
|
func ConvertDBLeagueWithSettings(lws []dbgen.GetAllLeaguesWithSettingsRow) []LeagueWithSettings {
|
|
result := make([]LeagueWithSettings, len(lws))
|
|
for i, league := range lws {
|
|
result[i] = ConvertDBLeagueWithSetting(league)
|
|
}
|
|
return result
|
|
}
|
|
|
|
func ConvertUpdateLeague(updateLeague UpdateLeague) dbgen.UpdateLeagueParams {
|
|
return dbgen.UpdateLeagueParams{
|
|
ID: updateLeague.ID,
|
|
Name: updateLeague.Name.ToPG(),
|
|
CountryCode: updateLeague.CountryCode.ToPG(),
|
|
Bet365ID: updateLeague.Bet365ID.ToPG(),
|
|
SportID: updateLeague.SportID.ToPG(),
|
|
}
|
|
}
|
|
|
|
func ConvertLeagueWithSettingRes(lws LeagueWithSettings) LeagueWithSettingsRes {
|
|
return LeagueWithSettingsRes{
|
|
ID: lws.ID,
|
|
Name: lws.Name,
|
|
CompanyID: lws.CompanyID,
|
|
CountryCode: lws.CountryCode.Value,
|
|
Bet365ID: lws.Bet365ID.Value,
|
|
IsActive: lws.IsActive,
|
|
SportID: lws.SportID,
|
|
IsFeatured: lws.IsFeatured,
|
|
UpdatedAt: lws.UpdatedAt,
|
|
DefaultIsActive: lws.DefaultIsActive,
|
|
DefaultIsFeatured: lws.DefaultIsFeatured,
|
|
}
|
|
}
|
|
|
|
func ConvertLeagueWithSettingResList(leagues []LeagueWithSettings) []LeagueWithSettingsRes {
|
|
result := make([]LeagueWithSettingsRes, len(leagues))
|
|
|
|
for i, lws := range leagues {
|
|
result[i] = ConvertLeagueWithSettingRes(lws)
|
|
}
|
|
|
|
return result
|
|
}
|
|
|
|
func ConvertBaseLeagueRes(league BaseLeague) BaseLeagueRes {
|
|
return BaseLeagueRes{
|
|
ID: league.ID,
|
|
Name: league.Name,
|
|
CountryCode: league.CountryCode.Value,
|
|
Bet365ID: league.Bet365ID.Value,
|
|
SportID: league.SportID,
|
|
DefaultIsActive: league.DefaultIsActive,
|
|
DefaultIsFeatured: league.DefaultIsFeatured,
|
|
}
|
|
}
|
|
|
|
func ConvertBaseLeagueResList(leagues []BaseLeague) []BaseLeagueRes {
|
|
result := make([]BaseLeagueRes, len(leagues))
|
|
for i, league := range leagues {
|
|
result[i] = ConvertBaseLeagueRes(league)
|
|
}
|
|
|
|
return result
|
|
}
|