@@ -11,7 +11,18 @@ export const unterveranstaltungListProcedure = defineProtectedQueryProcedure({
1111 key : 'list' ,
1212 roleIds : [ Role . ADMIN , Role . GLIEDERUNG_ADMIN ] ,
1313 inputSchema : z . strictObject ( {
14- veranstaltungId : z . string ( ) . uuid ( ) . optional ( ) ,
14+ mode : z
15+ . discriminatedUnion ( 'mode' , [
16+ z . strictObject ( {
17+ mode : z . literal ( 'veranstaltung' ) ,
18+ veranstaltungId : z . string ( ) . uuid ( ) ,
19+ } ) ,
20+ z . strictObject ( {
21+ mode : z . literal ( 'gliederung' ) ,
22+ gliederungId : z . string ( ) . uuid ( ) ,
23+ } ) ,
24+ ] )
25+ . optional ( ) ,
1526 table : defineTableInput ( {
1627 filter : {
1728 gliederungName : z . string ( ) . optional ( ) ,
@@ -24,12 +35,13 @@ export const unterveranstaltungListProcedure = defineProtectedQueryProcedure({
2435 async handler ( {
2536 ctx : { account } ,
2637 input : {
27- veranstaltungId ,
38+ mode ,
2839 table : { filter, pagination } ,
2940 } ,
3041 } ) {
3142 const where : Prisma . UnterveranstaltungWhereInput = {
32- veranstaltungId,
43+ veranstaltungId : mode ?. mode === 'veranstaltung' ? mode . veranstaltungId : undefined ,
44+ gliederungId : mode ?. mode === 'gliederung' ? mode . gliederungId : undefined ,
3345 gliederung : {
3446 name : {
3547 contains : filter ?. gliederungName ,
@@ -49,7 +61,7 @@ export const unterveranstaltungListProcedure = defineProtectedQueryProcedure({
4961 // Role-based Filter
5062 if ( account . role !== Role . ADMIN ) {
5163 const gliederung = await getGliederungRequireAdmin ( account . id )
52- where . gliederungId = gliederung . id
64+ where . gliederungId = gliederung . id // TODO:
5365 }
5466
5567 const total = await prisma . unterveranstaltung . count ( { where } )
0 commit comments