Skip to content

Commit f491cc9

Browse files
committed
chore: wip
1 parent b7d9b98 commit f491cc9

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

storage/framework/core/database/src/migrations.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,8 @@ export async function generateMigration(modelPath: string) {
9191
const model = await import(modelPath)
9292
const tableName = model.default.table
9393
const fields = model.default.fields
94-
const useTimestamps = model.default?.traits?.useTimestamps
94+
const useTimestamps = model.default?.traits?.useTimestamps ?? model.default?.traits?.timestampable
95+
const useSoftDeletes = model.default?.traits?.useSoftDeletes ?? model.default?.traits?.softDeletable
9596

9697
let migrationContent = `import type { Database } from '@stacksjs/database'\n`
9798
migrationContent += `import { sql } from '@stacksjs/database'\n\n`
@@ -120,9 +121,13 @@ export async function generateMigration(modelPath: string) {
120121
// Append created_at and updated_at columns if useTimestamps is true
121122
if (useTimestamps) {
122123
migrationContent += ` .addColumn('created_at', 'timestamp', col => col.notNull().defaultTo(sql.raw('CURRENT_TIMESTAMP')))\n`
123-
migrationContent += ` .addColumn('updated_at', 'timestamp', col => col.notNull().defaultTo(sql.raw('CURRENT_TIMESTAMP')))\n`
124+
migrationContent += ` .addColumn('updated_at', 'timestamp', col => col.nullable())\n`
124125
}
125126

127+
// Append deleted_at column if useSoftDeletes is true
128+
if (useSoftDeletes)
129+
migrationContent += ` .addColumn('deleted_at', 'timestamp', col => col.nullable())\n`
130+
126131
migrationContent += ` .execute()\n`
127132
migrationContent += `}\n`
128133

storage/framework/core/types/src/model.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,9 @@ export interface ModelOptions extends Base {
4545
traits: {
4646
useUuid?: boolean // defaults to false
4747
useTimestamps?: boolean | TimestampOptions // defaults to true
48+
timestampable?: boolean | TimestampOptions // useTimestamps alias
4849
useSoftDeletes?: boolean | SoftDeleteOptions // defaults to false
50+
softDeletable?: boolean | SoftDeleteOptions // useSoftDeletes alias
4951

5052
useAuth?: boolean | AuthOptions // defaults to false
5153
authenticatable?: boolean | AuthOptions // useAuth alias

0 commit comments

Comments
 (0)