Skip to content

Commit edf64e4

Browse files
CK-7vnclaudecarddev81corypride
authored
refactor: total-refactor to main
* feat: add shared component library for frontend-v2 PageHeader, StatusBadge, EmptyState, SearchInput, ConfirmDialog, FormModal, and DataTable components with consistent design system theming and reusable patterns. * feat: port type system, API client, and utility libraries Split monolithic common.ts into 15 domain-specific type modules (auth, user, facility, program, attendance, provider, content, insights, events, server, reports, navigation, websocket, ui, global.d.ts). Port API client with CSRF handling and credential passing. Add formatters and cn() utility. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: port auth, session management, and context providers Port AuthProvider with Ory Kratos flow integration, RouteGuard for role-based access control, useAuth with role helpers and session management. Port BroadcastChannel tab session and WebSocket session. Rewrite ThemeContext for next-themes, ToastContext for sonner. Port Tour, Breadcrumb, and PageTitle contexts. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: port custom hooks and route loaders Port useUrlPagination, useSessionViewType, useCheckResponse (adapted for shadcn Dialog controlled state), useBreadcrumbsFromRoutes. Port all route loaders for data prefetching. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: port shadcn/ui component library with design tokens Port all 52 shadcn/ui components from the redesign. Components use Radix UI primitives with forest green/olive/gold design tokens. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: port layout shell, navigation, and core components Port AuthenticatedLayout with redesign top nav bar (bg-[#203622]), role-based nav items, facility selector, user menu, theme toggle. Port GuestLayout, TopNav, MobileNav, Breadcrumbs. Port TitleManager, Loading, Brand, and UnlockEdTour components. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: configure router, route definitions, and app entry Set up React Router v6 with route guards, loaders, and breadcrumbs. Configure provider nesting order (PostHog, Tour, SWR, Theme). Define all app routes (admin, program, provider, knowledge center). Add globals.css with design tokens and dark mode support. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add auth pages and form components Port Login with Ory Kratos flow integration (rate limiting, lockout, deactivation detection). Add ChangePasswordForm with validation and first-login facility setup. Add ConsentForm for OAuth2. Port Welcome landing page and StudentLayer0 greeting page. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add admin management pages Add AdminManagement with role-based CRUD and permission checks. Add StudentManagement with deactivation support. Add FacilityManagement with room and timezone configuration. Add ResidentProfile detail page. Add ProviderPlatformManagement with OIDC registration and archive. Add ProviderUserManagement with user import and Kolibri detection. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add program management and event attendance pages Add ProgramManagementForm and ClassManagementForm for create/edit. Add ProgramOverviewDashboard, ProgramClassManagement, ClassLayout, ClassEnrollmentDetails, ClassEvents, and AddClassEnrollments. Add decomposed EventAttendance page with grid and summary. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add student pages and learning components Add ResidentHome with featured content and favorites. Add StudentDashboard with weekly activity chart. Add MyCourses with tabs and grid/list toggle. Add MyProgress with stats and sortable table. Add ResidentOverview and CourseCatalog. Add WeeklyActivity, TopContentList, EnrolledCourseCard, CatalogCourseCard, and ActivityHistoryCard components. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add knowledge center pages and components Add OpenContent tabbed container for admin/student views. Add LibraryLayout, VideoManagement, HelpfulLinksManagement for admins. Add StudentOpenContent, VideoContent, LibraryViewer (Kiwix iframe), VideoViewer, HelpfulLinks, and Favorites for students. Add LibraryCard, VideoCard, HelpfulLinkCard, FavoriteCard, and OpenContentItemAccordion. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add insights, schedule, and remaining pages Add OperationalInsights, KnowledgeInsights, and LearningInsights with recharts visualizations. Add EngagementRateGraph and chart components. Add Schedule with weekly calendar view. Add FAQs with accordion and HelpCenter. Port Dashboard, ClassesPage, ProgramsPage, TakeAttendance, Error page, and class-detail/program-detail modules. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: resolve React ref forwarding, render-body side effects, and iframe blocking Add forwardRef to Input, Textarea, and Button for react-hook-form compatibility. Move side effects (navigate, window.location.href) from render bodies into useEffect in AuthProvider, RouteGuard, Login, and ResidentProfile. Extract shared formatDate/formatDateTime into formatters.ts to eliminate duplication. Fix LoginForm timer to use derived state instead of synced useState. Fix X-Frame-Options to use SAMEORIGIN for proxy routes so Kiwix content renders in iframes. Fix inverted NATS cache condition in middleware that prevented library proxy params from being cached. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: v2 class page added * fix: program and class pages closer to redesign * feat: add side navbar * fix: lock navbar * fix: remove video * feat: add necessary wiring and formatting to make page mirror figma * feat: add necessary wiring and formatting to make page mirror figma * fix: started working page * fix: labels and added todos * fix: Pagination * fix: create program functionality * fix: removed extra padding * fix: missing sortOption * fix: removed comments * fix: remove file commited accidently * fix: archived filter * fix: card view metrics * fix: adjusted missing styling * fix: stat card fix * fix: linting errors * feat: add necessary wiring and formatting to make department admin dashboard page mirror figma * fix: add changes per requests * fix: add changes per requests * feat: Dept_admin view ProgramsPage * refactor: Enrolled column shows (currently / all-time) * refactor: Facilities count is clickable * refactor: view, edit, delete added to Action column * fix: Programs Mgt -> Programs and removed the facility name for dept_admin * fix: hover cursor on button * fix: resized text area * fix: made funding types * fix: removed actions column * fix: border facilities offered * fix: underline facilities * fix: programs to items * fix: utilization * fix: modify focus ring on checkboxes * fix: modify focus ring on filters and input fields * fix: change create button logic to make button active * feat: add necessary wiring and formatting to make fac admin program details page mirror figma * fix: add changes per request * fix: add changes per request * fix: add changes per requestv * fix: add changes per requestv * feat: add changes per carolinas updates * feat: add changes per carolinas updates * feat: add changes per carolinas updates * feat: add changes per pr review requests * fix: add css for fixing grey background * fix: upgrade Tailwind CSS v3 to v4 - Replace JS config with CSS-first @theme inline config - Replace PostCSS pipeline with @tailwindcss/vite plugin - Rename breaking v4 class names (outline-none, shadow-sm, ring-offset) - Upgrade tailwind-merge to v3 for v4 class support * chore: untrack node_modules * fix: bump go version * chore: updated ENV GOTOOLCHAIN to auto to allow go.mod to control the version and not the local machine. * Ck 7vn/total refactor classes (#1087) * feat: class page click to details * feat: update Roster tab to fit redesign in classes * fix: small screen handling * feat: add breadcrumbs to class ecosystem * feat: add class modal * fix: class creation issues * fix: room conflict modal fix * feat: add pagintaion to class * fix: requirements fixed * feat: new requirements * fix: PR comments header program filter * fix: cancel by instructor modal * fix: time display format * fix: add back css to align breadcrumbs to be exact * feat: add styling and code for program details for department admins * fix: add missing archiving and reactivate pieces found by reviewer * feat: add styling and code for facilities screen for department admins * feat: resident profile * feat: Resident Profile PR 1 base page * fix: spacing bullets * fix: switch breadcrumb to button to match styling * feat: first residents PR * fix: borders, backend * fix: padding and spacing * feat: resident profile PR 2 * feat: resident profile PR 3 * feat: Resident Profile PR 4 * feat: resident profile PR 5 add backend points * fix: versioning update View Details modal component * fix: remove username editability * fix: minor details * fix: migrations rebase issues pagination * fix: historical notes csv * fix: csv filter collapse migration * fix: CanSwitch truncation attendance count * fix: clean up migration * fix: truncation and tooltip * fix: pagination in attendance modal * feat: class details * feat: backend and shared infrastructure for class detail refactor Backend: migration for instructor overrides, database layer updates (class events, program classes, programs, users), handler updates (enrollments, class events, classes), and class event model changes. Frontend: type definitions (attendance, events, program), shared UI components (Pagination, dialog, drawer, sheet, alert-dialog), Breadcrumbs, attendance utilities, layout and route loader updates, BulkCancelClassesModal, and page updates (Programs, EventAttendance, AddClassEnrollments, ClassManagementForm, ProgramOverviewDashboard). * fix: public preface on migrations * feat: class detail page shell with roster and enrollment history tabs Adds the refactored class detail page with the new shell layout: breadcrumbs, ClassHeader with stat cards, header actions (edit, take attendance, delete), and the first two tabs. Roster tab: resident list with search/filter, enroll/unenroll modals, change enrollment status, and bulk graduate functionality. Enrollment History tab: historical enrollment records with filtering. Also updates ClassesPage (adds TakeAttendanceModal integration) and program-routes (adds class detail route). * fix: update focus rings modal layouts * fix: match prototype explicitly * fix: minor fixes and layout * feat: sessions and schedule tabs with bulk actions and session management Add Sessions and Schedule tabs to class detail page. Implement selection management with floating action bar for bulk operations. Add individual Change Instructor and Change Room modals. Enhance BulkSessionsModal cancel action with CancelEventReason enum dropdown. Fix CancelSessionModal note clearing when switching away from Other reason. * fix: match styling * fix: align modal button spacing and label styling to prototype Update ChangeInstructorModal and ChangeRoomModal button wrapper gap from gap-2 to gap-3 with justify-end first, and update "Sessions to Update" label to use font-medium with brand color. * fix: match sessions filter bar layout to prototype * fix: match schedule tab text colors to prototype * fix: match session tab text and wording to prototype * fix: match schedule tab card and layout styling to prototype * fix: match schedule tab legend and calendar text to prototype * fix: match show-all link style and cancelled icon to prototype * fix: match schedule calendar cells to prototype rich layout * fix: remove month navigation to match prototype static calendar header * fix: modals and comments * fix: future event implementations * fix: undo outline * fix: add notes to other reason * fix: date time mismatches functionality * feat: support and audit tabs for class detail page Add Support tab with at-risk resident detection (attendance below 75% or consecutive absences) and Audit tab with class history timeline. Completes all 6 class detail tabs. * fix: enrollment history alignment * fix: modal ux, rescheduling * fix: post-select on creation scaling and format * fix: merge snafus * fix: edit class modal issues * fix: minor details, programs page rebase issue * fix: class status enrollment archive filter * fix: schedule, speed * fix: padding link to button breadcrumbs * fix: carry over changes * fix: coloring, wording * fix: bold variables audit history * fix: pagination control on audit history * fix: capitalization * fix: update change_log entries on edit class * fix: needs support prefill scrollbar * fix: time formatting conflicts * fix: null nested program object * fix: enrollment history spacing * fix: null enrolled_at * fix: roster tab mismatch * fix: take attendance modal * fix: scheduled modal, roster tab * fix: logic in sessions table * fix: session scheduling logic * fix: cancel reschedule cancel * fix: undo cancellation inline * fix: subtitle time * fix: cancelling reschuled same date class * fix: ssame day session instructor change * fix: scrollbar rebase issue * feat: add new landing page to have login and password * fix: replace CSS hex to match branding per request * feat: residents page refactor * feat: knowledge center * feat: initial knowledge center * fix: toast * fix: remove pagination default to all * fix: toast * feat: knowledge center video dl fixed * feat: tour * fix: helpful links api call feature toggle * fix: go bump version * fix: go bump version in ancillary security CI/CD flow * fix: home page image pixelation and layout * fix: pagination * fix: card text truncation * fix: tags, spacing on resident view * fix: add css for sizing cards and missing feature flags --------- Co-authored-by: carddev81 <rich@unlockedlabs.org> * feat: move faq into redesign * feat: add schedule and refactor for code reuse and efficiency * fix: add reason length check * fix: dead code layout merge regression fix (#1119) * fix: military to am-pm (#1116) * fix: military to am-pm * fix: tz hardening * fix: defensive case for deleteion of users * fix: add account overview to resident page * fix: account overview * fix: go bump to 1.26.3 * fix: add delete guards * fix: update index, queries, tests * fix: logic in program_classes.go hook that prevented enrolled_ended_at value from properly being updated * fix: applied bug fixes according to 2 code rabbit comments * fix: upgrade pgx/v5 and x/net to resolve govulncheck CVEs Bumps github.com/jackc/pgx/v5 to v5.9.0 (fixes GO-2026-4771, GO-2026-4772) and golang.org/x/net to v0.53.0 (fixes GO-2026-4918) in both backend and provider-middleware modules to unblock the security scan CI check. * fix: bump GitHub Actions checkout to v4 and setup-go to v5 for Node 24 compatibility * fix: upgrade pgx/v5 to v5.9.0 in migrations and seeder modules * feat: add admin redesign page * fix: add version change for golang * fix: add changes per code rabbit * fix: add url change to fix create class flow per Carolina and to match figma * feat: add instructor and room strikethrough feature per ticket ID-620 * feat: add instructor and room strikethrough feature per ticket ID-620 * fix: add changes per code rabbit * feat: add new redesign files to frontend folder and remove old v2 folder (#1126) * feat: add new redesign files to frontend folder and remove old v2 folder * feat: add new redesign files to frontend folder and remove old v2 folder * fix: add changes for linting errors * refactor: add and remove logic to consolidate schedule popout to remove duplicated code * fix: add missing condition check * fix: remove unused code (#1127) * refactor: Pagination component to be used site wide * fix: linting errors * fix: removed unused totalPages variable * fix: resolved code rabbit requested changes * fix: suggested changes * refactor: add changes to account for split 2 ticket ID 654 * fix: add changes to utilize the PageHeader versus the DashboardHeader component and then remove unused code * refactor: split 3 * fix: export sessionutil funcs * fix: split 3 helpers to lib and session-utils * fix: type linked_override_event nullable, type VideoViewer fetch * refactor: split SessionDetailSheet into focused sub-components * refactor: split SessionsTab into sub-components * refactor: extract LoadingSkeleton and ClassNotFoundCard from class-detail * refactor: dedupe buildFacilityEvent, tighten EnrollResidentModal cast * fix: routes for top content and resident dashboard * fix: scrollbars * refactor: add changes to account for split 1 form and modals ticket ID 653 * fix: add changes to fix code rabbit requests * refactor: global css * refactor: brand colors in globals * refactor: sweep stragglers + add brand-gold-dark token * refactor: focus rings * refactor: consolidate more hex and extract reusable component classes * refactor: extract more component classes * refactor: more component class extractions and library viewer stretch fix * refactor: css hex and badges * fix: schedule tab click state color --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: carddev81 <rich@unlockedlabs.org> Co-authored-by: Cory Pride <cory.pride83@gmail.com>
1 parent 1af1707 commit edf64e4

523 files changed

Lines changed: 48912 additions & 31328 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/container_builds.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222

2323
steps:
2424
- name: Checkout code
25-
uses: actions/checkout@v3
25+
uses: actions/checkout@v4
2626
with:
2727
fetch-depth: 3
2828

@@ -62,7 +62,7 @@ jobs:
6262

6363
steps:
6464
- name: Checkout code
65-
uses: actions/checkout@v3
65+
uses: actions/checkout@v4
6666

6767
- name: Set Image Version
6868
run: |

.github/workflows/eslint.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
1-
name: Run ESLint and build frontend
1+
name: Build frontend
22

33
on: pull_request
44

55
jobs:
66
frontend:
7-
name: Lint and build JS
7+
name: Build JS
88
runs-on: ubuntu-latest
99
steps:
1010
- uses: actions/checkout@v4
11+
- uses: actions/setup-node@v4
12+
with:
13+
node-version: '22'
14+
cache: 'yarn'
15+
cache-dependency-path: frontend/yarn.lock
1116
- run: |
1217
cd frontend && \
1318
corepack install -g yarn && \
1419
yarn && \
15-
yarn lint-staged && \
1620
yarn build

.github/workflows/go_test.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ jobs:
66
tests:
77
runs-on: ubuntu-latest
88
steps:
9-
- uses: actions/checkout@v3
9+
- uses: actions/checkout@v4
1010

1111
- name: Set up Go
12-
uses: actions/setup-go@v4
12+
uses: actions/setup-go@v5
1313
with:
1414
go-version: "1.26.3"
1515

.github/workflows/security-frontend.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
- name: Set up Node.js
3030
uses: actions/setup-node@v4
3131
with:
32-
node-version: '18'
32+
node-version: '22'
3333
cache: 'yarn'
3434
cache-dependency-path: frontend/yarn.lock
3535

.gitignore

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,30 @@
33
.claude
44
.idea
55
.claude/*
6+
node_modules/
67
Claude.md
78
AGENTS.md
89
.github/workflows/test.yml
9-
/frontend/.husky/staged-files
1010
jar
1111
/config/logs
1212
/logs/*.log
1313
/logs/*.json
14+
/frontend/dist/
15+
/frontend/node_modules/
16+
/frontend/.vite/
1417
/frontend/public/build
1518
/frontend/public/thumbnails/*
1619
/frontend/public/*.mp4
1720
/frontend/public/videos/*
21+
*.tsbuildinfo
1822
/migrations/migrations
1923
/provider-middleware/providers.db
2024
/backend/server
2125
/provider-middleware/middleware
26+
/provider-middleware/provider-middleware
2227
/provider-middleware/bin
2328
/backend/bin
2429
/bin/*
2530
/tmp
2631
/csvs/zims/*.zim
27-
/.claude
32+
/.claude

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ reset: ascii_art
4343

4444
init: ascii_art
4545
@echo 'Installing dependencies...'
46-
go install github.com/pressly/goose/v3/cmd/goose@latest && go install github.com/air-verse/air@latest && cd frontend && yarn install && yarn prepare && cd ..
46+
go install github.com/pressly/goose/v3/cmd/goose@latest && go install github.com/air-verse/air@latest && cd frontend && yarn install && cd ..
4747
@echo 'Dependencies installed successfully.'
4848
./config/zims.sh
4949
docker compose up $(BUILD_RECREATE)

backend/go.mod

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ require (
2020
github.com/sirupsen/logrus v1.9.4
2121
github.com/stretchr/testify v1.11.1
2222
github.com/teambition/rrule-go v1.8.2
23-
golang.org/x/net v0.49.0 // indirect
23+
golang.org/x/net v0.53.0 // indirect
2424
golang.org/x/oauth2 v0.34.0
2525
gorm.io/driver/postgres v1.6.0
2626
gorm.io/gorm v1.31.1
@@ -65,7 +65,7 @@ require (
6565
github.com/go-playground/universal-translator v0.18.1 // indirect
6666
github.com/jackc/pgpassfile v1.0.0 // indirect
6767
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect
68-
github.com/jackc/pgx/v5 v5.8.0 // indirect
68+
github.com/jackc/pgx/v5 v5.9.0 // indirect
6969
github.com/jackc/puddle/v2 v2.2.2 // indirect
7070
github.com/jinzhu/inflection v1.0.0 // indirect
7171
github.com/jinzhu/now v1.1.5 // indirect
@@ -86,11 +86,11 @@ require (
8686
github.com/robfig/cron/v3 v3.0.1 // indirect
8787
github.com/sethvargo/go-retry v0.3.0 // indirect
8888
go.uber.org/multierr v1.11.0 // indirect
89-
golang.org/x/crypto v0.47.0 // indirect
89+
golang.org/x/crypto v0.50.0 // indirect
9090
golang.org/x/exp v0.0.0-20260112195511-716be5621a96 // indirect
91-
golang.org/x/sync v0.19.0 // indirect
92-
golang.org/x/sys v0.40.0 // indirect
93-
golang.org/x/text v0.33.0 // indirect
91+
golang.org/x/sync v0.20.0 // indirect
92+
golang.org/x/sys v0.43.0 // indirect
93+
golang.org/x/text v0.36.0 // indirect
9494
google.golang.org/protobuf v1.36.11 // indirect
9595
gopkg.in/yaml.v3 v3.0.1 // indirect
9696
modernc.org/libc v1.67.7 // indirect

backend/go.sum

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,8 @@ github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsI
7979
github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg=
8080
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo=
8181
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM=
82-
github.com/jackc/pgx/v5 v5.8.0 h1:TYPDoleBBme0xGSAX3/+NujXXtpZn9HBONkQC7IEZSo=
83-
github.com/jackc/pgx/v5 v5.8.0/go.mod h1:QVeDInX2m9VyzvNeiCJVjCkNFqzsNb43204HshNSZKw=
82+
github.com/jackc/pgx/v5 v5.9.0 h1:T/dI+2TvmI2H8s/KH1/lXIbz1CUFk3gn5oTjr0/mBsE=
83+
github.com/jackc/pgx/v5 v5.9.0/go.mod h1:mal1tBGAFfLHvZzaYh77YS/eC6IX9OWbRV1QIIM0Jn4=
8484
github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo=
8585
github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4=
8686
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
@@ -164,27 +164,27 @@ go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
164164
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
165165
go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0=
166166
go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8=
167-
golang.org/x/crypto v0.47.0 h1:V6e3FRj+n4dbpw86FJ8Fv7XVOql7TEwpHapKoMJ/GO8=
168-
golang.org/x/crypto v0.47.0/go.mod h1:ff3Y9VzzKbwSSEzWqJsJVBnWmRwRSHt/6Op5n9bQc4A=
167+
golang.org/x/crypto v0.50.0 h1:zO47/JPrL6vsNkINmLoo/PH1gcxpls50DNogFvB5ZGI=
168+
golang.org/x/crypto v0.50.0/go.mod h1:3muZ7vA7PBCE6xgPX7nkzzjiUq87kRItoJQM1Yo8S+Q=
169169
golang.org/x/exp v0.0.0-20260112195511-716be5621a96 h1:Z/6YuSHTLOHfNFdb8zVZomZr7cqNgTJvA8+Qz75D8gU=
170170
golang.org/x/exp v0.0.0-20260112195511-716be5621a96/go.mod h1:nzimsREAkjBCIEFtHiYkrJyT+2uy9YZJB7H1k68CXZU=
171171
golang.org/x/image v0.25.0 h1:Y6uW6rH1y5y/LK1J8BPWZtr6yZ7hrsy6hFrXjgsc2fQ=
172172
golang.org/x/image v0.25.0/go.mod h1:tCAmOEGthTtkalusGp1g3xa2gke8J6c2N565dTyl9Rs=
173-
golang.org/x/mod v0.32.0 h1:9F4d3PHLljb6x//jOyokMv3eX+YDeepZSEo3mFJy93c=
174-
golang.org/x/mod v0.32.0/go.mod h1:SgipZ/3h2Ci89DlEtEXWUk/HteuRin+HHhN+WbNhguU=
175-
golang.org/x/net v0.49.0 h1:eeHFmOGUTtaaPSGNmjBKpbng9MulQsJURQUAfUwY++o=
176-
golang.org/x/net v0.49.0/go.mod h1:/ysNB2EvaqvesRkuLAyjI1ycPZlQHM3q01F02UY/MV8=
173+
golang.org/x/mod v0.34.0 h1:xIHgNUUnW6sYkcM5Jleh05DvLOtwc6RitGHbDk4akRI=
174+
golang.org/x/mod v0.34.0/go.mod h1:ykgH52iCZe79kzLLMhyCUzhMci+nQj+0XkbXpNYtVjY=
175+
golang.org/x/net v0.53.0 h1:d+qAbo5L0orcWAr0a9JweQpjXF19LMXJE8Ey7hwOdUA=
176+
golang.org/x/net v0.53.0/go.mod h1:JvMuJH7rrdiCfbeHoo3fCQU24Lf5JJwT9W3sJFulfgs=
177177
golang.org/x/oauth2 v0.34.0 h1:hqK/t4AKgbqWkdkcAeI8XLmbK+4m4G5YeQRrmiotGlw=
178178
golang.org/x/oauth2 v0.34.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
179-
golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4=
180-
golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
179+
golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4=
180+
golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
181181
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
182-
golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ=
183-
golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
184-
golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE=
185-
golang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8=
186-
golang.org/x/tools v0.41.0 h1:a9b8iMweWG+S0OBnlU36rzLp20z1Rp10w+IY2czHTQc=
187-
golang.org/x/tools v0.41.0/go.mod h1:XSY6eDqxVNiYgezAVqqCeihT4j1U2CCsqvH3WhQpnlg=
182+
golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI=
183+
golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
184+
golang.org/x/text v0.36.0 h1:JfKh3XmcRPqZPKevfXVpI1wXPTqbkE5f7JA92a55Yxg=
185+
golang.org/x/text v0.36.0/go.mod h1:NIdBknypM8iqVmPiuco0Dh6P5Jcdk8lJL0CUebqK164=
186+
golang.org/x/tools v0.43.0 h1:12BdW9CeB3Z+J/I/wj34VMl8X+fEXBxVR90JeMX5E7s=
187+
golang.org/x/tools v0.43.0/go.mod h1:uHkMso649BX2cZK6+RpuIPXS3ho2hZo4FVwfoy1vIk0=
188188
google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
189189
google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
190190
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
-- +goose Up
2+
ALTER TABLE public.program_class_event_overrides
3+
ADD COLUMN instructor_id INTEGER REFERENCES public.users(id);
4+
5+
-- +goose Down
6+
ALTER TABLE public.program_class_event_overrides DROP COLUMN IF EXISTS instructor_id;
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
-- +goose Up
2+
CREATE TABLE IF NOT EXISTS public.user_notes (
3+
id SERIAL PRIMARY KEY,
4+
user_id INTEGER NOT NULL REFERENCES public.users(id) ON DELETE CASCADE,
5+
note TEXT NOT NULL,
6+
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
7+
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
8+
deleted_at TIMESTAMPTZ,
9+
create_user_id INTEGER NOT NULL REFERENCES public.users(id),
10+
update_user_id INTEGER REFERENCES public.users(id)
11+
);
12+
13+
CREATE INDEX IF NOT EXISTS idx_user_notes_user_id ON public.user_notes(user_id);
14+
15+
-- +goose Down
16+
DROP TABLE IF EXISTS public.user_notes;

0 commit comments

Comments
 (0)