package repository import ( "context" dbgen "github.com/SamuelTariku/FortuneBet-Backend/gen/db" "github.com/SamuelTariku/FortuneBet-Backend/internal/domain" ) func convertCreateCompany(company domain.CreateCompany) dbgen.CreateCompanyParams { return dbgen.CreateCompanyParams{ Name: company.Name, AdminID: company.AdminID, WalletID: company.WalletID, } } func convertDBCompany(dbCompany dbgen.Company) domain.Company { return domain.Company{ ID: dbCompany.ID, Name: dbCompany.Name, AdminID: dbCompany.AdminID, WalletID: dbCompany.WalletID, } } func (s *Store) CreateCompany(ctx context.Context, company domain.CreateCompany) (domain.Company, error) { dbCompany, err := s.queries.CreateCompany(ctx, convertCreateCompany(company)) if err != nil { return domain.Company{}, err } return convertDBCompany(dbCompany), nil } func (s *Store) GetAllCompanies(ctx context.Context) ([]domain.Company, error) { dbCompanies, err := s.queries.GetAllCompanies(ctx) if err != nil { return nil, err } var companies []domain.Company = make([]domain.Company, 0, len(dbCompanies)) for _, dbCompany := range dbCompanies { companies = append(companies, convertDBCompany(dbCompany)) } return companies, nil } func (s *Store) GetCompanyByID(ctx context.Context, id int64) (domain.Company, error) { dbCompany, err := s.queries.GetCompanyByID(ctx, id) if err != nil { return domain.Company{}, err } return convertDBCompany(dbCompany), nil } func (s *Store) UpdateCompany(ctx context.Context, id int64, company domain.UpdateCompany) (domain.Company, error) { dbCompany, err := s.queries.UpdateCompany(ctx, dbgen.UpdateCompanyParams{ ID: id, Name: company.Name, AdminID: company.AdminID, }) if err != nil { return domain.Company{}, err } return convertDBCompany(dbCompany), nil } func (s *Store) DeleteCompany(ctx context.Context, id int64) error { return s.queries.DeleteCompany(ctx, id) }