File tree Expand file tree Collapse file tree 4 files changed +59
-0
lines changed
migrations/20240418080551_add_announcements
customResolversEnhanceMap Expand file tree Collapse file tree 4 files changed +59
-0
lines changed Original file line number Diff line number Diff line change 1+ -- CreateTable
2+ CREATE TABLE "Announcement " (
3+ " id" TEXT NOT NULL ,
4+ " createdAt" TIMESTAMP (3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ,
5+ " updatedAt" TIMESTAMP (3 ) NOT NULL ,
6+ " content" TEXT NOT NULL ,
7+ " isSent" BOOLEAN NOT NULL DEFAULT false,
8+ " eventId" TEXT ,
9+ " eventGroupId" TEXT ,
10+
11+ CONSTRAINT " Announcement_pkey" PRIMARY KEY (" id" )
12+ );
13+
14+ -- AddForeignKey
15+ ALTER TABLE " Announcement" ADD CONSTRAINT " Announcement_eventId_fkey" FOREIGN KEY (" eventId" ) REFERENCES " Event" (" id" ) ON DELETE SET NULL ON UPDATE CASCADE;
Original file line number Diff line number Diff line change @@ -90,6 +90,7 @@ model Event {
9090 promoCodes PromoCode []
9191 interestedEmails MailingListMember []
9292 webhooks Webhook []
93+ announcements Announcement []
9394}
9495
9596enum WebhookService {
@@ -300,6 +301,20 @@ model ScheduleItem {
300301 eventGroupId String ?
301302}
302303
304+ model Announcement {
305+ // Metadata
306+ id String @id @default (cuid () )
307+ createdAt DateTime @default (now () )
308+ updatedAt DateTime @updatedAt
309+
310+ content String
311+ isSent Boolean @default (false )
312+
313+ // Relations
314+ event Event ? @relation (fields : [eventId ] , references : [id ] )
315+ eventId String ?
316+ }
317+
303318enum DiscountType {
304319 SUBTRACT
305320 PERCENT
Original file line number Diff line number Diff line change 1+ import { AnnouncementScalarFieldEnum , ModelConfig } from "../generated/typegraphql-prisma" ;
2+ import { Authorized } from "type-graphql" ;
3+ import { AuthRole } from "../context" ;
4+
5+ let defaultPerms : { [ key : string ] : MethodDecorator [ ] } = { } ;
6+ Object . keys ( AnnouncementScalarFieldEnum ) . forEach ( ( value : string ) => defaultPerms [ value ] = [ Authorized ( AuthRole . ADMIN , AuthRole . MANAGER ) ] )
7+
8+ export const announcementEnhanceConfig : ModelConfig < "Announcement" > = {
9+ fields : {
10+ ...defaultPerms ,
11+ id : [ ] ,
12+ createdAt : [ ] ,
13+ updatedAt : [ ] ,
14+ content : [ ] ,
15+ }
16+ }
Original file line number Diff line number Diff line change 1+ import { ResolverActionsConfig , AnnouncementCrudResolver } from "../generated/typegraphql-prisma" ;
2+ import { Authorized } from "type-graphql" ;
3+ import { AuthRole } from "../context" ;
4+
5+ let defaultPerms : { [ key : string ] : MethodDecorator [ ] } = { } ;
6+ Object . getOwnPropertyNames ( AnnouncementCrudResolver . prototype ) . forEach ( ( value : string ) => defaultPerms [ value ] = [ Authorized ( AuthRole . ADMIN ) ] )
7+
8+ export const announcementEnhanceConfig : ResolverActionsConfig < "Announcement" > = {
9+ ...defaultPerms ,
10+ createAnnouncement : [ Authorized ( AuthRole . ADMIN , AuthRole . MANAGER ) ] ,
11+ updateAnnouncement : [ Authorized ( AuthRole . ADMIN ) ] ,
12+ deleteAnnouncement : [ Authorized ( AuthRole . ADMIN ) ] ,
13+ }
You can’t perform that action at this time.
0 commit comments