Add event source code to models
This commit is contained in:
parent
0db88a5a3b
commit
c7e607ea5f
|
@ -0,0 +1,33 @@
|
||||||
|
import { Entity, Index, Column, PrimaryColumn } from 'typeorm';
|
||||||
|
import { id } from '../id.js';
|
||||||
|
|
||||||
|
@Entity()
|
||||||
|
export class Event {
|
||||||
|
@PrimaryColumn(id())
|
||||||
|
public id: string;
|
||||||
|
|
||||||
|
@Index()
|
||||||
|
@Column('timestamp with time zone', {
|
||||||
|
comment: 'The start time of the event',
|
||||||
|
})
|
||||||
|
public start: Date;
|
||||||
|
|
||||||
|
@Column('timestamp with time zone', {
|
||||||
|
comment: 'The end of the event',
|
||||||
|
nullable: true,
|
||||||
|
})
|
||||||
|
public end: Date;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
type: 'varchar',
|
||||||
|
length: 128,
|
||||||
|
comment: 'short name of event',
|
||||||
|
})
|
||||||
|
public title: string;
|
||||||
|
|
||||||
|
@Column('jsonb', {
|
||||||
|
default: {},
|
||||||
|
comment: 'metadata mapping for event with more user configurable optional information',
|
||||||
|
})
|
||||||
|
public metadata: Record<string, string>;
|
||||||
|
}
|
|
@ -1,8 +1,9 @@
|
||||||
import { Entity, Index, JoinColumn, Column, PrimaryColumn, ManyToOne } from 'typeorm';
|
import { Entity, Index, JoinColumn, Column, PrimaryColumn, ManyToOne, OneToOne } from 'typeorm';
|
||||||
import { id } from '../id.js';
|
import { id } from '../id.js';
|
||||||
import { noteVisibilities } from '../../types.js';
|
import { noteVisibilities } from '../../types.js';
|
||||||
import { User } from './User.js';
|
import { User } from './User.js';
|
||||||
import { Channel } from './Channel.js';
|
import { Channel } from './Channel.js';
|
||||||
|
import { Event } from './Event.js';
|
||||||
import type { DriveFile } from './DriveFile.js';
|
import type { DriveFile } from './DriveFile.js';
|
||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
|
@ -53,6 +54,20 @@ export class Note {
|
||||||
})
|
})
|
||||||
public threadId: string | null;
|
public threadId: string | null;
|
||||||
|
|
||||||
|
@Index()
|
||||||
|
@Column({
|
||||||
|
...id(),
|
||||||
|
nullable: true,
|
||||||
|
comment: 'id of child event',
|
||||||
|
})
|
||||||
|
public noteId: Event['id'] | null;
|
||||||
|
|
||||||
|
@OneToOne(type => Event, {
|
||||||
|
onDelete: 'CASCADE',
|
||||||
|
})
|
||||||
|
@JoinColumn()
|
||||||
|
public note: Event | null;
|
||||||
|
|
||||||
// TODO: varcharにしたい
|
// TODO: varcharにしたい
|
||||||
@Column('text', {
|
@Column('text', {
|
||||||
nullable: true,
|
nullable: true,
|
||||||
|
|
Loading…
Reference in New Issue