package domain import ( "encoding/json" "time" dbgen "github.com/SamuelTariku/FortuneBet-Backend/gen/db" ) type CustomOdd struct { ID int64 OddID int64 CompanyID int64 EventID string RawOdds []json.RawMessage CreatedAt time.Time } type CreateCustomOdd struct { OddID int64 CompanyID int64 EventID string RawOdds []json.RawMessage } type CustomOddFilter struct { CompanyID ValidInt64 } func ConvertCreateCustomOdd(odd CreateCustomOdd) (dbgen.InsertCustomOddParams, error) { rawOddsBytes, err := json.Marshal(odd.RawOdds) if err != nil { return dbgen.InsertCustomOddParams{}, err } return dbgen.InsertCustomOddParams{ OddID: odd.OddID, CompanyID: odd.CompanyID, EventID: odd.EventID, RawOdds: rawOddsBytes, }, nil } func ConvertDBCustomOdd(dbCustomOdd dbgen.CustomOdd) (CustomOdd, error) { var rawOdds []json.RawMessage if err := json.Unmarshal(dbCustomOdd.RawOdds, &rawOdds); err != nil { return CustomOdd{}, err } return CustomOdd{ ID: dbCustomOdd.ID, OddID: dbCustomOdd.OddID, CompanyID: dbCustomOdd.CompanyID, EventID: dbCustomOdd.EventID, RawOdds: rawOdds, CreatedAt: dbCustomOdd.CreatedAt.Time, }, nil } func ConvertDbCustomOdds(list []dbgen.CustomOdd) ([]CustomOdd, error) { result := make([]CustomOdd, 0, len(list)) for _, item := range list { convertedItem, err := ConvertDBCustomOdd(item) if err != nil { return nil, err } result = append(result, convertedItem) } return result, nil }