diff --git a/app/(server)/_features/event/schema.ts b/app/(server)/_features/event/schema.ts index 56f9aefd..3a61ce11 100644 --- a/app/(server)/_features/event/schema.ts +++ b/app/(server)/_features/event/schema.ts @@ -55,6 +55,7 @@ export const participant = pgTable( .references(() => events.id, { onDelete: 'cascade' }), updateCount: integer('update_count').notNull().default(0), roleID: integer('role_id') + .default(1) .references(() => participantRole.id, { onDelete: 'set null', }) diff --git a/migrations/0025_add_default_role.sql b/migrations/0025_add_default_role.sql new file mode 100644 index 00000000..fe10cf45 --- /dev/null +++ b/migrations/0025_add_default_role.sql @@ -0,0 +1 @@ +ALTER TABLE "events_participant" ALTER COLUMN "role_id" SET DEFAULT 1; \ No newline at end of file diff --git a/migrations/meta/0025_snapshot.json b/migrations/meta/0025_snapshot.json new file mode 100644 index 00000000..625ec066 --- /dev/null +++ b/migrations/meta/0025_snapshot.json @@ -0,0 +1,504 @@ +{ + "id": "c2471741-dd57-4610-ae7a-0c483c347325", + "prevId": "7c0aaba6-2d85-4634-acd4-8da33fe00dfa", + "version": "5", + "dialect": "pg", + "tables": { + "activities_logs": { + "name": "activities_logs", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "meta": { + "name": "meta", + "type": "jsonb", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_by": { + "name": "created_by", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "early_access_invitees": { + "name": "early_access_invitees", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "whitelist_feature": { + "name": "whitelist_feature", + "type": "text[]", + "primaryKey": false, + "notNull": true, + "default": "array[]::text[]" + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "early_access_invitees_email_unique": { + "name": "early_access_invitees_email_unique", + "nullsNotDistinct": false, + "columns": [ + "email" + ] + } + } + }, + "events": { + "name": "events", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "uuid": { + "name": "uuid", + "type": "uuid", + "primaryKey": false, + "notNull": false, + "default": "gen_random_uuid()" + }, + "slug": { + "name": "slug", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "start_time": { + "name": "start_time", + "type": "timestamp", + "primaryKey": false, + "notNull": true + }, + "end_time": { + "name": "end_time", + "type": "timestamp", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_by": { + "name": "created_by", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "room_id": { + "name": "room_id", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "thumbnail_url": { + "name": "thumbnail_url", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "event_status_enum", + "primaryKey": false, + "notNull": true, + "default": "'draft'" + }, + "available_slots": { + "name": "available_slots", + "type": "integer", + "primaryKey": false, + "notNull": false, + "default": 50 + } + }, + "indexes": {}, + "foreignKeys": { + "events_created_by_users_id_fk": { + "name": "events_created_by_users_id_fk", + "tableFrom": "events", + "tableTo": "users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "events_room_id_rooms_id_fk": { + "name": "events_room_id_rooms_id_fk", + "tableFrom": "events", + "tableTo": "rooms", + "columnsFrom": [ + "room_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "events_slug_unique": { + "name": "events_slug_unique", + "nullsNotDistinct": false, + "columns": [ + "slug" + ] + } + } + }, + "events_participant": { + "name": "events_participant", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "client_id": { + "name": "client_id", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "first_name": { + "name": "first_name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "last_name": { + "name": "last_name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "event_id": { + "name": "event_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "update_count": { + "name": "update_count", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "role_id": { + "name": "role_id", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 1 + } + }, + "indexes": {}, + "foreignKeys": { + "events_participant_event_id_events_id_fk": { + "name": "events_participant_event_id_events_id_fk", + "tableFrom": "events_participant", + "tableTo": "events", + "columnsFrom": [ + "event_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "events_participant_role_id_participant_role_id_fk": { + "name": "events_participant_role_id_participant_role_id_fk", + "tableFrom": "events_participant", + "tableTo": "participant_role", + "columnsFrom": [ + "role_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "events_participant_client_id_event_id_unique": { + "name": "events_participant_client_id_event_id_unique", + "nullsNotDistinct": false, + "columns": [ + "client_id", + "event_id" + ] + }, + "events_participant_email_event_id_unique": { + "name": "events_participant_email_event_id_unique", + "nullsNotDistinct": false, + "columns": [ + "email", + "event_id" + ] + } + } + }, + "participant_role": { + "name": "participant_role", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "rooms": { + "name": "rooms", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_by": { + "name": "created_by", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "meta": { + "name": "meta", + "type": "jsonb", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "users": { + "name": "users", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "picture_url": { + "name": "picture_url", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "whitelist_feature": { + "name": "whitelist_feature", + "type": "text[]", + "primaryKey": false, + "notNull": true, + "default": "array[]::text[]" + }, + "account_id": { + "name": "account_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "users_email_unique": { + "name": "users_email_unique", + "nullsNotDistinct": false, + "columns": [ + "email" + ] + }, + "users_account_id_unique": { + "name": "users_account_id_unique", + "nullsNotDistinct": false, + "columns": [ + "account_id" + ] + } + } + } + }, + "enums": { + "event_status_enum": { + "name": "event_status_enum", + "values": { + "draft": "draft", + "published": "published", + "cancelled": "cancelled" + } + } + }, + "schemas": {}, + "_meta": { + "columns": {}, + "schemas": {}, + "tables": {} + } +} \ No newline at end of file diff --git a/migrations/meta/_journal.json b/migrations/meta/_journal.json index 761c21fb..5998227b 100644 --- a/migrations/meta/_journal.json +++ b/migrations/meta/_journal.json @@ -176,6 +176,13 @@ "when": 1714367384035, "tag": "0024_unique_email_per_event", "breakpoints": true + }, + { + "idx": 25, + "version": "5", + "when": 1715065398654, + "tag": "0025_add_default_role", + "breakpoints": true } ] } \ No newline at end of file