87 行
1.7 KiB
TypeScript
87 行
1.7 KiB
TypeScript
import { BaseEntity, transformerJson } from '../../base/entity/base';
|
||
import { Column, Entity, Index } from 'typeorm';
|
||
import { NFCSceneMode, NFCSceneRule } from '../../../comm/types/omni';
|
||
|
||
/**
|
||
* NFC 场景路由规则
|
||
* 表名: nfc_rule
|
||
* deviceId 为空时对租户下全部设备生效
|
||
*/
|
||
@Entity('nfc_rule')
|
||
export class NfcRuleEntity extends BaseEntity implements NFCSceneRule {
|
||
@Index()
|
||
@Column({
|
||
name: 'device_id',
|
||
comment: '绑定设备;空则对租户下全部设备生效',
|
||
type: 'bigint',
|
||
nullable: true,
|
||
})
|
||
deviceId?: number | null;
|
||
|
||
@Column({
|
||
name: 'name',
|
||
comment: '规则名称',
|
||
length: 100,
|
||
})
|
||
name: string;
|
||
|
||
@Column({
|
||
name: 'scene_mode',
|
||
comment: '命中后的场景模式 business/social',
|
||
length: 16,
|
||
default: 'business',
|
||
})
|
||
sceneMode: NFCSceneMode;
|
||
|
||
@Column({
|
||
name: 'target_card_id',
|
||
comment: '命中后导向的名片 ID',
|
||
type: 'bigint',
|
||
})
|
||
targetCardId: number;
|
||
|
||
@Index()
|
||
@Column({
|
||
name: 'enabled',
|
||
comment: '是否启用',
|
||
default: true,
|
||
})
|
||
enabled: boolean;
|
||
|
||
@Column({
|
||
name: 'start_time',
|
||
comment: '生效开始时刻 HH:mm',
|
||
type: 'varchar',
|
||
length: 8,
|
||
nullable: true,
|
||
})
|
||
startTime?: string | null;
|
||
|
||
@Column({
|
||
name: 'end_time',
|
||
comment: '生效结束时刻 HH:mm',
|
||
type: 'varchar',
|
||
length: 8,
|
||
nullable: true,
|
||
})
|
||
endTime?: string | null;
|
||
|
||
@Column({
|
||
name: 'weekdays',
|
||
comment: '生效星期 0-6(周日=0)',
|
||
type: 'json',
|
||
nullable: true,
|
||
transformer: transformerJson,
|
||
})
|
||
weekdays?: number[] | null;
|
||
|
||
@Index()
|
||
@Column({
|
||
name: 'country_code',
|
||
comment: '地理国家码 ISO 3166-1 alpha-2',
|
||
length: 8,
|
||
nullable: true,
|
||
})
|
||
countryCode?: string | null;
|
||
}
|