feat: Implement routines feature with CRUD operations and child assignment
Chore App Build, Test, and Push Docker Images / build-and-push (push) Successful in 3m0s

- Add backend routines management with add, get, update, delete, and list functionalities.
- Create models for Routine, RoutineItem, RoutineSchedule, and RoutineExtension.
- Develop event types for routine confirmation and modification.
- Implement frontend components for routine assignment, confirmation dialog, and routine management views.
- Add unit tests for routine API and integration tests for routine CRUD flow.
- Create end-to-end test plan for routines feature covering parent and child interactions.
This commit is contained in:
2026-05-05 09:08:19 -04:00
parent 082097b4f9
commit eb775ba7d8
41 changed files with 2847 additions and 29 deletions
+25
View File
@@ -9,15 +9,18 @@ import TaskSubNav from '../components/task/TaskSubNav.vue'
import ChoreView from '../components/task/ChoreView.vue'
import KindnessView from '../components/task/KindnessView.vue'
import PenaltyView from '../components/task/PenaltyView.vue'
import RoutineView from '../components/routine/RoutineView.vue'
import ChoreEditView from '@/components/task/ChoreEditView.vue'
import KindnessEditView from '@/components/task/KindnessEditView.vue'
import PenaltyEditView from '@/components/task/PenaltyEditView.vue'
import RoutineEditView from '@/components/routine/RoutineEditView.vue'
import RewardView from '../components/reward/RewardView.vue'
import RewardEditView from '@/components/reward/RewardEditView.vue'
import ChildEditView from '@/components/child/ChildEditView.vue'
import ChoreAssignView from '@/components/child/ChoreAssignView.vue'
import KindnessAssignView from '@/components/child/KindnessAssignView.vue'
import PenaltyAssignView from '@/components/child/PenaltyAssignView.vue'
import RoutineAssignView from '@/components/child/RoutineAssignView.vue'
import RewardAssignView from '@/components/child/RewardAssignView.vue'
import NotificationView from '@/components/notification/NotificationView.vue'
import AuthLayout from '@/layout/AuthLayout.vue'
@@ -139,6 +142,11 @@ const routes = [
name: 'PenaltyView',
component: PenaltyView,
},
{
path: 'routines',
name: 'RoutineView',
component: RoutineView,
},
],
},
{
@@ -174,6 +182,17 @@ const routes = [
component: PenaltyEditView,
props: true,
},
{
path: 'tasks/routines/create',
name: 'CreateRoutine',
component: RoutineEditView,
},
{
path: 'tasks/routines/:id/edit',
name: 'EditRoutine',
component: RoutineEditView,
props: true,
},
{
path: 'rewards',
name: 'RewardView',
@@ -215,6 +234,12 @@ const routes = [
component: RewardAssignView,
props: true,
},
{
path: ':id/assign-routines',
name: 'RoutineAssignView',
component: RoutineAssignView,
props: true,
},
{
path: 'notifications',
name: 'NotificationView',