project_billing.go 1.2 KB

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