From c4f26f4088af237047d97256f20c32e1cc7e15ec Mon Sep 17 00:00:00 2001 From: AvilaAndre Date: Tue, 11 Feb 2025 23:19:11 +0000 Subject: [PATCH] feat: use participant profile as info and create migrations --- website/app/models/participant_info.ts | 19 -------------- website/app/models/user.ts | 14 +++-------- ...27688817_create_participant_infos_table.ts | 18 ------------- .../1739128445636_alter_users_table.ts | 25 ------------------- ...9294506253_create_promoter_infos_table.ts} | 2 +- ....ts => 1739294511724_alter_users_table.ts} | 9 +++++++ 6 files changed, 13 insertions(+), 74 deletions(-) delete mode 100644 website/app/models/participant_info.ts delete mode 100644 website/database/migrations/1739127688817_create_participant_infos_table.ts delete mode 100644 website/database/migrations/1739128445636_alter_users_table.ts rename website/database/migrations/{1739127665664_create_promoter_infos_table.ts => 1739294506253_create_promoter_infos_table.ts} (99%) rename website/database/migrations/{1739036994584_alter_users_table.ts => 1739294511724_alter_users_table.ts} (78%) diff --git a/website/app/models/participant_info.ts b/website/app/models/participant_info.ts deleted file mode 100644 index 9e97e28..0000000 --- a/website/app/models/participant_info.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { DateTime } from 'luxon' -import { BaseModel, column, hasOne } from '@adonisjs/lucid/orm' -import type { HasOne } from '@adonisjs/lucid/types/relations' -import User from './user.js' - -export default class ParticipantInfo extends BaseModel { - @column({ isPrimary: true }) - declare id: number - - @hasOne(() => User) - declare user: HasOne - - @column.dateTime({ autoCreate: true }) - declare createdAt: DateTime - - @column.dateTime({ autoCreate: true, autoUpdate: true }) - declare updatedAt: DateTime - -} diff --git a/website/app/models/user.ts b/website/app/models/user.ts index b19ac35..150c18c 100644 --- a/website/app/models/user.ts +++ b/website/app/models/user.ts @@ -3,7 +3,6 @@ import { BaseModel, belongsTo, column, hasMany } from '@adonisjs/lucid/orm' import Account from './account.js' import type { BelongsTo, HasMany } from '@adonisjs/lucid/types/relations' import PromoterInfo from './promoter_info.js' -import ParticipantInfo from './participant_info.js' import { compose } from '@adonisjs/core/helpers' import { HasReferralLink } from './mixins/has_referral_link.js' import ParticipantProfile from './participant_profile.js' @@ -45,14 +44,7 @@ export default class User extends compose(BaseModel, HasReferralLink) { @belongsTo(() => PromoterInfo) declare promoterInfo: BelongsTo - // ParticipantInfo - @column() - declare participantInfoId: number | null - - @belongsTo(() => ParticipantInfo) - declare participantInfo: BelongsTo - - // Profiles + // ParticipantProfile @column() declare participantProfileId: number | null @@ -65,9 +57,9 @@ export default class User extends compose(BaseModel, HasReferralLink) { } isParticipant() { - return this.participantInfoId !== null + return this.participantProfileId !== null } - + isEmailVerified() { return this.emailVerifiedAt !== null } diff --git a/website/database/migrations/1739127688817_create_participant_infos_table.ts b/website/database/migrations/1739127688817_create_participant_infos_table.ts deleted file mode 100644 index 87eed33..0000000 --- a/website/database/migrations/1739127688817_create_participant_infos_table.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { BaseSchema } from '@adonisjs/lucid/schema' - -export default class extends BaseSchema { - protected tableName = 'participant_infos' - - async up() { - this.schema.createTable(this.tableName, (table) => { - table.increments('id') - - table.timestamp('created_at') - table.timestamp('updated_at') - }) - } - - async down() { - this.schema.dropTable(this.tableName) - } -} diff --git a/website/database/migrations/1739128445636_alter_users_table.ts b/website/database/migrations/1739128445636_alter_users_table.ts deleted file mode 100644 index 83669e6..0000000 --- a/website/database/migrations/1739128445636_alter_users_table.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { BaseSchema } from '@adonisjs/lucid/schema' - -export default class extends BaseSchema { - protected tableName = 'users' - - async up() { - this.schema.alterTable(this.tableName, (table) => { - table.integer('promoter_info_id') - .unique() - .references('id') - .inTable('promoter_infos') - table.integer('participant_info_id') - .unique() - .references('id') - .inTable('participant_infos') - }) - } - - async down() { - this.schema.alterTable(this.tableName, (table) => { - table.dropColumn('promoter_info_id') - table.dropColumn('participant_info_id') - }) - } -} diff --git a/website/database/migrations/1739127665664_create_promoter_infos_table.ts b/website/database/migrations/1739294506253_create_promoter_infos_table.ts similarity index 99% rename from website/database/migrations/1739127665664_create_promoter_infos_table.ts rename to website/database/migrations/1739294506253_create_promoter_infos_table.ts index 86141be..731c9ba 100644 --- a/website/database/migrations/1739127665664_create_promoter_infos_table.ts +++ b/website/database/migrations/1739294506253_create_promoter_infos_table.ts @@ -15,4 +15,4 @@ export default class extends BaseSchema { async down() { this.schema.dropTable(this.tableName) } -} +} \ No newline at end of file diff --git a/website/database/migrations/1739036994584_alter_users_table.ts b/website/database/migrations/1739294511724_alter_users_table.ts similarity index 78% rename from website/database/migrations/1739036994584_alter_users_table.ts rename to website/database/migrations/1739294511724_alter_users_table.ts index 9356131..e2d88fb 100644 --- a/website/database/migrations/1739036994584_alter_users_table.ts +++ b/website/database/migrations/1739294511724_alter_users_table.ts @@ -5,7 +5,13 @@ export default class extends BaseSchema { async up() { this.schema.alterTable(this.tableName, (table) => { + table.integer('promoter_info_id') + .unique() + .references('id') + .inTable('promoter_infos') + table.integer('points').defaultTo(0) + table.integer('referred_by_promoter_id') .unsigned() .nullable() @@ -17,7 +23,10 @@ export default class extends BaseSchema { async down() { this.schema.alterTable(this.tableName, (table) => { + table.dropColumn('promoter_info_id') + table.dropColumn('points') + table.dropColumn('referred_by_promoter_id') }) }