feat(org): enforce tenant isolation in ws/kc with leave and stats APIs
Add org_id schema migrations and service-level filtering for teacher-student and class workflows, then cover org-context behavior with focused unit/e2e tests for leave and hour statistics. Made-with: Cursor
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
drop index if exists idx_clazz_repeat_org_id;
|
||||
drop index if exists idx_hour_transaction_org_id;
|
||||
drop index if exists idx_course_hour_package_org_id;
|
||||
drop index if exists idx_clazz_attendance_org_id;
|
||||
drop index if exists idx_clazz_org_id;
|
||||
|
||||
alter table clazz_repeat
|
||||
drop column if exists org_id;
|
||||
|
||||
alter table hour_transaction
|
||||
drop column if exists org_id;
|
||||
|
||||
alter table course_hour_package
|
||||
drop column if exists org_id;
|
||||
|
||||
alter table clazz_attendance
|
||||
drop column if exists org_id;
|
||||
|
||||
alter table clazz
|
||||
drop column if exists org_id;
|
||||
@@ -0,0 +1,29 @@
|
||||
alter table clazz
|
||||
add column org_id varchar;
|
||||
|
||||
alter table clazz_attendance
|
||||
add column org_id varchar;
|
||||
|
||||
alter table course_hour_package
|
||||
add column org_id varchar;
|
||||
|
||||
alter table hour_transaction
|
||||
add column org_id varchar;
|
||||
|
||||
alter table clazz_repeat
|
||||
add column org_id varchar;
|
||||
|
||||
create index idx_clazz_org_id
|
||||
on clazz (org_id);
|
||||
|
||||
create index idx_clazz_attendance_org_id
|
||||
on clazz_attendance (org_id);
|
||||
|
||||
create index idx_course_hour_package_org_id
|
||||
on course_hour_package (org_id);
|
||||
|
||||
create index idx_hour_transaction_org_id
|
||||
on hour_transaction (org_id);
|
||||
|
||||
create index idx_clazz_repeat_org_id
|
||||
on clazz_repeat (org_id);
|
||||
@@ -0,0 +1 @@
|
||||
drop table if exists clazz_leave_request;
|
||||
@@ -0,0 +1,34 @@
|
||||
create table clazz_leave_request
|
||||
(
|
||||
id varchar not null,
|
||||
org_id varchar not null,
|
||||
clazz_id varchar not null
|
||||
constraint clazz_leave_request_clazz_id_fk
|
||||
references clazz (id),
|
||||
student_id varchar not null,
|
||||
teacher_id varchar,
|
||||
leave_type varchar not null,
|
||||
reason varchar,
|
||||
request_status varchar not null default 'PENDING',
|
||||
created_at timestamp not null default now(),
|
||||
created_by varchar,
|
||||
reviewed_at timestamp,
|
||||
reviewed_by varchar,
|
||||
is_delete boolean not null default false
|
||||
);
|
||||
|
||||
create unique index clazz_leave_request_id_uindex
|
||||
on clazz_leave_request (id);
|
||||
|
||||
alter table clazz_leave_request
|
||||
add constraint clazz_leave_request_pk
|
||||
primary key (id);
|
||||
|
||||
create index idx_clazz_leave_request_org_id
|
||||
on clazz_leave_request (org_id);
|
||||
|
||||
create index idx_clazz_leave_request_clazz_id
|
||||
on clazz_leave_request (clazz_id);
|
||||
|
||||
create index idx_clazz_leave_request_student_id
|
||||
on clazz_leave_request (student_id);
|
||||
Reference in New Issue
Block a user