MIF_E31222379_BE/internal/repositories/coveragearea.go

149 lines
4.3 KiB
Go

package repositories
import (
"github.com/pahmiudahgede/senggoldong/config"
"github.com/pahmiudahgede/senggoldong/domain"
)
func GetCoverageAreas() ([]domain.CoverageArea, error) {
var coverageAreas []domain.CoverageArea
if err := config.DB.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.Where("id = ?", id).First(&coverageArea).Error; err != nil {
return coverageArea, err
}
return coverageArea, nil
}
func GetCoverageAreaByDistrictID(id string) (domain.CoverageDistric, error) {
var coverageDistric domain.CoverageDistric
if err := config.DB.Where("id = ?", id).First(&coverageDistric).Error; err != nil {
return coverageDistric, err
}
return coverageDistric, nil
}
func GetCoverageDistricsByCoverageAreaID(areaID string) ([]domain.CoverageDistric, error) {
var districts []domain.CoverageDistric
if err := config.DB.Where("coverage_area_id = ?", areaID).Find(&districts).Error; err != nil {
return nil, err
}
return districts, nil
}
func GetSubdistrictsByCoverageDistrictID(districtID string) ([]domain.CoverageSubdistrict, error) {
var subdistricts []domain.CoverageSubdistrict
if err := config.DB.Where("coverage_district_id = ?", districtID).Find(&subdistricts).Error; err != nil {
return nil, err
}
return subdistricts, nil
}
func CreateCoverageArea(coverageArea *domain.CoverageArea) error {
if err := config.DB.Create(&coverageArea).Error; err != nil {
return err
}
return nil
}
func CreateCoverageDistrict(coverageDistrict *domain.CoverageDistric) error {
if err := config.DB.Create(&coverageDistrict).Error; err != nil {
return err
}
return nil
}
func CreateCoverageSubdistrict(coverageSubdistrict *domain.CoverageSubdistrict) error {
if err := config.DB.Create(&coverageSubdistrict).Error; err != nil {
return err
}
return nil
}
func UpdateCoverageArea(id string, coverageArea domain.CoverageArea) (domain.CoverageArea, error) {
var existingCoverageArea domain.CoverageArea
if err := config.DB.Where("id = ?", id).First(&existingCoverageArea).Error; err != nil {
return existingCoverageArea, err
}
existingCoverageArea.Province = coverageArea.Province
if err := config.DB.Save(&existingCoverageArea).Error; err != nil {
return existingCoverageArea, err
}
return existingCoverageArea, nil
}
func UpdateCoverageDistrict(id string, coverageDistrict domain.CoverageDistric) (domain.CoverageDistric, error) {
var existingCoverageDistrict domain.CoverageDistric
if err := config.DB.Where("id = ?", id).First(&existingCoverageDistrict).Error; err != nil {
return existingCoverageDistrict, err
}
existingCoverageDistrict.District = coverageDistrict.District
if err := config.DB.Save(&existingCoverageDistrict).Error; err != nil {
return existingCoverageDistrict, err
}
return existingCoverageDistrict, nil
}
func UpdateCoverageSubdistrict(id string, coverageSubdistrict domain.CoverageSubdistrict) (domain.CoverageSubdistrict, error) {
var existingCoverageSubdistrict domain.CoverageSubdistrict
if err := config.DB.Where("id = ?", id).First(&existingCoverageSubdistrict).Error; err != nil {
return existingCoverageSubdistrict, err
}
existingCoverageSubdistrict.Subdistrict = coverageSubdistrict.Subdistrict
if err := config.DB.Save(&existingCoverageSubdistrict).Error; err != nil {
return existingCoverageSubdistrict, err
}
return existingCoverageSubdistrict, nil
}
func DeleteCoverageArea(id string) error {
var coverageArea domain.CoverageArea
if err := config.DB.Where("id = ?", id).First(&coverageArea).Error; err != nil {
return err
}
if err := config.DB.Delete(&coverageArea).Error; err != nil {
return err
}
return nil
}
func DeleteCoverageDistrict(id string) error {
var coverageDistrict domain.CoverageDistric
if err := config.DB.Where("id = ?", id).First(&coverageDistrict).Error; err != nil {
return err
}
if err := config.DB.Delete(&coverageDistrict).Error; err != nil {
return err
}
return nil
}
func DeleteCoverageSubdistrict(id string) error {
var coverageSubdistrict domain.CoverageSubdistrict
if err := config.DB.Where("id = ?", id).First(&coverageSubdistrict).Error; err != nil {
return err
}
if err := config.DB.Delete(&coverageSubdistrict).Error; err != nil {
return err
}
return nil
}