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.LeagueWithSetting) 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.LeagueWithSetting) []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 }