package repository import ( "electricity_bill_calc/cache" "electricity_bill_calc/global" "electricity_bill_calc/model" ) type _RegionRepository struct{} var RegionRepo _RegionRepository func (_RegionRepository) FetchRegion(code string) (*model.Region, error) { cachedRegion, _ := cache.RetreiveData[model.Region]("region", code) if cachedRegion != nil { return cachedRegion, nil } region := new(model.Region) has, err := global.DBConn.ID(code).NoAutoCondition().Get(region) if has { cache.CacheData(region, "region", code) } return _postProcessSingle(region, has, err) }