Files
my-links/app/models/app_base_model.ts

30 lines
703 B
TypeScript

import { BaseModel, CamelCaseNamingStrategy, beforeCreate, column } from '@adonisjs/lucid/orm';
import { DateTime } from 'luxon';
import { v4 as uuidv4 } from 'uuid';
export default class AppBaseModel extends BaseModel {
static namingStrategy = new CamelCaseNamingStrategy();
static selfAssignPrimaryKey = true;
@column({ isPrimary: true })
declare id: string; // UUID
@column.dateTime({
autoCreate: true,
serializeAs: 'createdAt',
})
declare createdAt: DateTime;
@column.dateTime({
autoCreate: true,
autoUpdate: true,
serializeAs: 'updatedAt',
})
declare updatedAt: DateTime;
@beforeCreate()
static assignUuid(item: any) {
item.id = uuidv4();
}
}