import type { DateTime } from 'luxon' import type { BelongsTo, ManyToMany } from '@ioc:Adonis/Lucid/Orm' import { BaseModel, belongsTo, column, manyToMany } from '@ioc:Adonis/Lucid/Orm' import Tag from 'App/Models/Tag' import Translation from 'App/Models/Translation' import File from 'App/Models/File' import PostColor from 'App/Models/PostColor' export default class Post extends BaseModel { @column({ isPrimary: true }) public id: number @manyToMany(() => Tag) public tags: ManyToMany @column() public slug: string @column() public likes: number @belongsTo(() => Translation, { foreignKey: 'titleId', }) public title: BelongsTo @column() public titleId: number @belongsTo(() => Translation, { foreignKey: 'descriptionId', }) public description: BelongsTo @column() public descriptionId: number @belongsTo(() => File, { foreignKey: 'coverId', }) public cover: BelongsTo @column() public coverId: number @belongsTo(() => Translation, { foreignKey: 'contentId', }) public content: BelongsTo @column() public contentId: number @belongsTo(() => PostColor, { foreignKey: 'colorId', }) public color: BelongsTo @column() public colorId: number @column() public readingTime: number @column() public date: string @column.dateTime({ autoCreate: true }) public createdAt: DateTime @column.dateTime({ autoCreate: true, autoUpdate: true }) public updatedAt: DateTime }