71 lines
1.9 KiB
Go
71 lines
1.9 KiB
Go
package repositories
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"github.com/pahmiudahgede/senggoldong/config"
|
|
"github.com/pahmiudahgede/senggoldong/domain"
|
|
)
|
|
|
|
func GetCoverageAreas() ([]domain.CoverageArea, error) {
|
|
var coverageAreas []domain.CoverageArea
|
|
if err := config.DB.Preload("Details").Find(&coverageAreas).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
return coverageAreas, nil
|
|
}
|
|
|
|
func GetCoverageAreaByID(id string) (domain.CoverageArea, error) {
|
|
var coverageArea domain.CoverageArea
|
|
if err := config.DB.Preload("Details").Where("id = ?", id).First(&coverageArea).Error; err != nil {
|
|
return coverageArea, errors.New("coverage area not found")
|
|
}
|
|
return coverageArea, nil
|
|
}
|
|
|
|
func GetCoverageAreaByDistrictID(id string) (domain.CoverageDetail, error) {
|
|
var coverageDetail domain.CoverageDetail
|
|
if err := config.DB.Preload("LocationSpecific").Where("id = ?", id).First(&coverageDetail).Error; err != nil {
|
|
return coverageDetail, err
|
|
}
|
|
return coverageDetail, nil
|
|
}
|
|
|
|
func CreateCoverageArea(province string) (domain.CoverageArea, error) {
|
|
coverageArea := domain.CoverageArea{
|
|
Province: province,
|
|
}
|
|
|
|
if err := config.DB.Create(&coverageArea).Error; err != nil {
|
|
return domain.CoverageArea{}, err
|
|
}
|
|
|
|
return coverageArea, nil
|
|
}
|
|
|
|
func CreateCoverageDetail(coverageAreaID, province, district string) (domain.CoverageDetail, error) {
|
|
coverageDetail := domain.CoverageDetail{
|
|
CoverageAreaID: coverageAreaID,
|
|
District: district,
|
|
}
|
|
|
|
if err := config.DB.Create(&coverageDetail).Error; err != nil {
|
|
return domain.CoverageDetail{}, err
|
|
}
|
|
|
|
return coverageDetail, nil
|
|
}
|
|
|
|
func CreateLocationSpecific(coverageDetailID, subdistrict string) (domain.LocationSpecific, error) {
|
|
locationSpecific := domain.LocationSpecific{
|
|
CoverageDetailID: coverageDetailID,
|
|
Subdistrict: subdistrict,
|
|
}
|
|
|
|
if err := config.DB.Create(&locationSpecific).Error; err != nil {
|
|
return domain.LocationSpecific{}, err
|
|
}
|
|
|
|
return locationSpecific, nil
|
|
}
|