Index: ReserveNGo-frontend/src/components/Project/Restaurant/Locale_.vue
===================================================================
--- ReserveNGo-frontend/src/components/Project/Restaurant/Locale_.vue	(revision beab5bafbe741f9fcb8a5f06db90438edd8a88c6)
+++ ReserveNGo-frontend/src/components/Project/Restaurant/Locale_.vue	(revision 11196e84a6b4480681e3ddd7c1037b2b61de96e3)
@@ -92,4 +92,17 @@
       showToast: useToasts().showToast,
       //Toast end
+
+      // Working hours edit helpers
+      daysOfWeek: [
+        'MONDAY',
+        'TUESDAY',
+        'WEDNESDAY',
+        'THURSDAY',
+        'FRIDAY',
+        'SATURDAY',
+        'SUNDAY'
+      ],
+      // Holds text inputs per day during edit mode, e.g. "09:00:00-17:00:00" or "Closed"
+      workingHoursInputs: {}
     }
 
@@ -156,4 +169,5 @@
         .then((data) => {
           this.locale = data
+          console.log("LOCALE::: WORKING HOURS DATA", this.locale.workingHours)
           if (!this.locale.contact) {
             this.locale.contact = { phone: '', email: '' }
@@ -162,5 +176,4 @@
             this.locale.services = []
           }
-          // Use a separate property for display-transformed events
           this.eventsForCarousel = transformArray(this.locale.events, 2)
         })
@@ -231,4 +244,6 @@
       this.cachedLocale = JSON.parse(JSON.stringify(this.locale))
       this.isEditing = true
+      // Initialize working hours inputs for edit mode
+      this.initWorkingHoursInputs()
     },
     cancelEditing() {
@@ -240,7 +255,14 @@
     saveLocalChanges() {
       this.isSaveChangesLoading = true;
-      // Prepare the payload for saving. The `workingHours` property is sent as-is.
       const payload = { ...this.locale }
-      // Remove the display-only property before sending
+      if (this.isEditing) {
+        const { list, error } = this.validateAndBuildWorkingHours()
+        if (error) {
+          this.showToast(error, 'error')
+          this.isSaveChangesLoading = false
+          return
+        }
+        payload.workingHours = list
+      }
       delete payload.eventsForCarousel
 
@@ -252,5 +274,5 @@
         })
         .catch((error) => {
-          this.locale = this.cachedLocale // Revert on failure
+          this.locale = this.cachedLocale
           this.showToast(error.response, 'error')
         })
@@ -259,4 +281,70 @@
           this.isEditing = false
         })
+    },
+    initWorkingHoursInputs() {
+      const inputs = {}
+      const source = Array.isArray(this.locale.workingHours) ? this.locale.workingHours : []
+      const map = {}
+      source.forEach(wh => {
+        if (wh && wh.dayOfWeek) {
+          const day = String(wh.dayOfWeek).toUpperCase()
+          map[day] = wh
+        }
+      })
+      this.daysOfWeek.forEach(day => {
+        const wh = map[day]
+        if (wh && wh.openTime && wh.closeTime) {
+          inputs[day] = `${wh.openTime}-${wh.closeTime}`
+        } else {
+          inputs[day] = ''
+        }
+      })
+      this.workingHoursInputs = inputs
+    },
+    parseWorkingHourInput(text) {
+      if (text == null) return { type: 'empty' }
+      const trimmed = String(text).trim()
+      if (trimmed.length === 0) return { type: 'empty' }
+      if (/^closed$/i.test(trimmed)) return { type: 'closed' }
+      const parts = trimmed.split('-')
+      if (parts.length !== 2) return { type: 'invalid', reason: 'Expected format HH:MM:SS-HH:MM:SS' }
+      const [from, to] = parts
+      const timeRegex = /^(\d{2}):(\d{2}):(\d{2})$/
+      const mFrom = from.match(timeRegex)
+      const mTo = to.match(timeRegex)
+      if (!mFrom || !mTo) return { type: 'invalid', reason: 'Time must be HH:MM:SS' }
+      const h1 = parseInt(mFrom[1], 10), m1 = parseInt(mFrom[2], 10), s1 = parseInt(mFrom[3], 10)
+      const h2 = parseInt(mTo[1], 10), m2 = parseInt(mTo[2], 10), s2 = parseInt(mTo[3], 10)
+      const inRange = (h, m, s) => h>=0 && h<=23 && m>=0 && m<=59 && s>=0 && s<=59
+      if (!inRange(h1,m1,s1) || !inRange(h2,m2,s2)) return { type: 'invalid', reason: 'Time values out of range' }
+      const sec1 = h1*3600 + m1*60 + s1
+      const sec2 = h2*3600 + m2*60 + s2
+      if (sec1 >= sec2) return { type: 'invalid', reason: 'Open time must be before close time' }
+      return { type: 'range', openTime: `${from}`, closeTime: `${to}` }
+    },
+    validateAndBuildWorkingHours() {
+      const list = []
+      for (const day of this.daysOfWeek) {
+        const value = this.workingHoursInputs[day]
+        const res = this.parseWorkingHourInput(value)
+        if (res.type === 'invalid') {
+          return { list: null, error: `${day}: ${res.reason}` }
+        }
+        if (res.type === 'range') {
+          list.push({
+            dayOfWeek: day,
+            openTime: res.openTime,
+            closeTime: res.closeTime
+          })
+        }
+      }
+      return { list, error: null }
+    },
+    onWorkingHourBlur(day) {
+      const value = this.workingHoursInputs[day]
+      const res = this.parseWorkingHourInput(value)
+      if (res.type === 'invalid') {
+        this.showToast(`${day}: ${res.reason}`, 'error')
+      }
     },
     deleteEvent(eventId) {
@@ -395,5 +483,26 @@
                   <i class="fas fa-clock me-2 text-primary"></i>Working Hours
                 </h6>
-                <WorkingHoursTable :workingHours="locale.workingHours"></WorkingHoursTable>
+                <!-- View mode -->
+                <div v-if="!isEditing">
+                  <WorkingHoursTable :workingHours="locale.workingHours"></WorkingHoursTable>
+                </div>
+                <!-- Edit mode -->
+                <div v-else>
+                  <p class="text-muted small mb-2">
+                    Enter time as HH:MM:SS-HH:MM:SS (e.g., 09:00:00-17:30:00). Type "Closed" or leave blank for closed days.
+                  </p>
+                  <div class="row g-2">
+                    <div class="col-12" v-for="day in daysOfWeek" :key="day">
+                      <label class="form-label small mb-1">{{ day.charAt(0) + day.slice(1).toLowerCase() }}</label>
+                      <input
+                        type="text"
+                        class="form-control form-control-sm"
+                        v-model="workingHoursInputs[day]"
+                        placeholder="HH:MM:SS-HH:MM:SS or Closed"
+                        @blur="onWorkingHourBlur(day)"
+                      />
+                    </div>
+                  </div>
+                </div>
               </div>
             </div>
Index: ReserveNGo-frontend/src/components/Project/Restaurant/working-hours-table.vue
===================================================================
--- ReserveNGo-frontend/src/components/Project/Restaurant/working-hours-table.vue	(revision beab5bafbe741f9fcb8a5f06db90438edd8a88c6)
+++ ReserveNGo-frontend/src/components/Project/Restaurant/working-hours-table.vue	(revision 11196e84a6b4480681e3ddd7c1037b2b61de96e3)
@@ -15,14 +15,14 @@
       ]
     },
-    
+
     workingHoursMap() {
-      if (!this.workingHours || !Array.isArray(this.workingHours)) {
-        return {}
-      }
-      
+      if (!this.workingHours) return {}
       const map = {}
+     /* closeTime:"17:00:00"
+      dayOfWeek:"MONDAY"
+      openTime:"09:00:00"*/
+
       this.workingHours.forEach(wh => {
         if (wh.dayOfWeek) {
-          // Handle both uppercase and any case format
           const dayKey = wh.dayOfWeek.toUpperCase()
           map[dayKey] = {
@@ -34,5 +34,5 @@
       return map
     },
-    
+
     daysWithHours() {
       return this.daysOfWeek.map(day => {
@@ -40,12 +40,12 @@
         return {
           day: day,
-          hours: hours && hours.openTime && hours.closeTime 
-            ? `${hours.openTime} - ${hours.closeTime}` 
-            : null
+          hours: hours && hours.openTime && hours.closeTime
+            ? `${hours.openTime} - ${hours.closeTime}`
+            : "Closed"
         }
       })
     }
   },
-  
+
   methods: {
     formatDayName(day) {
