project_billing.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. //go:build ee
  2. // +build ee
  3. package gorm
  4. import (
  5. "github.com/porter-dev/porter/ee/models"
  6. "github.com/porter-dev/porter/ee/repository"
  7. "gorm.io/gorm"
  8. )
  9. // ProjectBillingRepository uses gorm.DB for querying the database
  10. type ProjectBillingRepository struct {
  11. db *gorm.DB
  12. }
  13. func NewProjectBillingRepository(db *gorm.DB) repository.ProjectBillingRepository {
  14. return &ProjectBillingRepository{db}
  15. }
  16. func (repo *ProjectBillingRepository) CreateProjectBilling(projBilling *models.ProjectBilling) (*models.ProjectBilling, error) {
  17. if err := repo.db.Create(projBilling).Error; err != nil {
  18. return nil, err
  19. }
  20. return projBilling, nil
  21. }
  22. func (repo *ProjectBillingRepository) ReadProjectBillingByProjectID(projID uint) (*models.ProjectBilling, error) {
  23. projBilling := &models.ProjectBilling{}
  24. if err := repo.db.Where("project_id = ?", projID).First(&projBilling).Error; err != nil {
  25. return nil, err
  26. }
  27. return projBilling, nil
  28. }
  29. func (repo *ProjectBillingRepository) ReadProjectBillingByTeamID(teamID string) (*models.ProjectBilling, error) {
  30. projBilling := &models.ProjectBilling{}
  31. if err := repo.db.Where("billing_team_id = ?", teamID).First(&projBilling).Error; err != nil {
  32. return nil, err
  33. }
  34. return projBilling, nil
  35. }