@@ -4,6 +4,8 @@ import { nanoid } from "nanoid";
44import { db } from "@/db" ;
55import { CreateEducationPayload } from "@/interfaces/edu.interface" ;
66
7+ import { createNotification , getStoreNameById } from "./notifications.service" ;
8+
79export const isStoreMember = async ( storeId : string , userId : string ) => {
810 return db
911 . selectFrom ( "storeMember" )
@@ -51,3 +53,37 @@ export const getEducationById = async (storeId: string, eduId: string) => {
5153 . where ( "storeId" , "=" , storeId )
5254 . executeTakeFirst ( ) ;
5355} ;
56+
57+ const getStoreMembers = async ( storeId : string ) => {
58+ return db . selectFrom ( "storeMember" ) . select ( "userId" ) . where ( "storeId" , "=" , storeId ) . execute ( ) ;
59+ } ;
60+
61+ export const createEduNoti = async ( storeId : string ) => {
62+ const members = await getStoreMembers ( storeId ) ;
63+ const notiTitle = await getStoreNameById ( storeId ) ;
64+ const owner = await db . selectFrom ( "store" ) . select ( "ownerId" ) . where ( "id" , "=" , storeId ) . executeTakeFirst ( ) ;
65+ for ( let i = 0 ; i < members . length ; i ++ ) {
66+ if ( members [ i ] . userId == owner ?. ownerId ) continue ;
67+ await createNotification ( {
68+ content : `게시물이 생성 됐습니다.` ,
69+ target : "/edupost/staff" ,
70+ title : notiTitle ?? "알 수 없는 가게" ,
71+ userId : members [ i ] . userId ,
72+ } ) ;
73+ }
74+ } ;
75+
76+ export const updateEduNoti = async ( storeId : string ) => {
77+ const members = await getStoreMembers ( storeId ) ;
78+ const title = await getStoreNameById ( storeId ) ;
79+ const owner = await db . selectFrom ( "store" ) . select ( "ownerId" ) . where ( "id" , "=" , storeId ) . executeTakeFirst ( ) ;
80+ for ( let i = 0 ; i < members . length ; i ++ ) {
81+ if ( members [ i ] . userId == owner ?. ownerId ) continue ;
82+ await createNotification ( {
83+ content : `게시물이 수정 됐습니다.` ,
84+ target : `/edupost/staff` ,
85+ title : title ?? "알 수 없는 가게" ,
86+ userId : members [ i ] . userId ,
87+ } ) ;
88+ }
89+ } ;
0 commit comments