21 lines
780 B
TypeScript
21 lines
780 B
TypeScript
import { hasMany, hasOne } from '@adonisjs/lucid/orm'
|
|
import type { HasMany, HasOne } from '@adonisjs/lucid/types/relations'
|
|
import WebComponent from '#base_modules/WebManager/model/web_component'
|
|
import type { Hero, PageType } from '#base_modules/WebManager/types/web_content'
|
|
import type { PageStatus } from '#base_modules/WebManager/types/page_status'
|
|
import { WebPageSchema } from '#database/schema'
|
|
|
|
export default class WebPage extends WebPageSchema {
|
|
static table = 'web_pages'
|
|
|
|
declare status: PageStatus
|
|
declare pageType: PageType
|
|
declare hero: Hero | null
|
|
|
|
@hasMany(() => WebComponent, { foreignKey: 'pageId' })
|
|
declare components: HasMany<typeof WebComponent>
|
|
|
|
@hasOne(() => WebPage, { foreignKey: 'draftOfId' })
|
|
declare draft: HasOne<typeof WebPage>
|
|
}
|