## 概要 [Task4085: Functions修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/4085) - メール送信対象のアカウント取得条件を修正 - プライマリー管理者の規約同意用のカラムがNULLであった場合は、そのアカウントにはメール送信しない。 - Entityの`@Column`で設定する型が実際のパラメータの型と異なっていたため修正 - 文字列のところをDateTimeとしていた ## レビューポイント - 修正内容の認識あっているか - テストケースは足りているか ## クエリの変更 - Repositoryを変更し、クエリが変更された場合は変更内容を確認する - Before/Afterのクエリ - https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%AF%E3%82%A8%E3%83%AA/4085?csf=1&web=1&e=WRec5O - 35行目に変更あり(規約系のカラムがNULLではないという条件を追加) ## 動作確認状況 - ローカルで確認 - 行った修正がデグレを発生させていないことを確認できるか - 既存のテスト結果に影響なし ## 補足 - 相談、参考資料などがあれば
116 lines
2.5 KiB
TypeScript
116 lines
2.5 KiB
TypeScript
import {
|
|
Entity,
|
|
Column,
|
|
PrimaryGeneratedColumn,
|
|
CreateDateColumn,
|
|
UpdateDateColumn,
|
|
JoinColumn,
|
|
OneToOne,
|
|
ManyToOne,
|
|
} from "typeorm";
|
|
import { bigintTransformer } from "../common/entity";
|
|
import { User } from "./user.entity";
|
|
|
|
@Entity({ name: "licenses" })
|
|
export class License {
|
|
@PrimaryGeneratedColumn()
|
|
id: number;
|
|
|
|
@Column({ nullable: true, type: "datetime" })
|
|
expiry_date: Date | null;
|
|
|
|
@Column()
|
|
account_id: number;
|
|
|
|
@Column()
|
|
type: string;
|
|
|
|
@Column()
|
|
status: string;
|
|
|
|
@Column({ nullable: true, type: "bigint", transformer: bigintTransformer })
|
|
allocated_user_id: number | null;
|
|
|
|
@Column({ nullable: true, type: "bigint", transformer: bigintTransformer })
|
|
order_id: number | null;
|
|
|
|
@Column({ nullable: true, type: "datetime" })
|
|
deleted_at: Date | null;
|
|
|
|
@Column({ nullable: true, type: "bigint", transformer: bigintTransformer })
|
|
delete_order_id: number | null;
|
|
|
|
@Column({ nullable: true, type: "varchar" })
|
|
created_by: string | null;
|
|
|
|
@CreateDateColumn({
|
|
default: () => "datetime('now', 'localtime')",
|
|
type: "datetime",
|
|
})
|
|
created_at: Date;
|
|
|
|
@Column({ nullable: true, type: "varchar" })
|
|
updated_by: string | null;
|
|
|
|
@UpdateDateColumn({
|
|
default: () => "datetime('now', 'localtime')",
|
|
type: "datetime",
|
|
})
|
|
updated_at: Date;
|
|
|
|
@OneToOne(() => User, (user) => user.license)
|
|
@JoinColumn({ name: "allocated_user_id" })
|
|
user: User | null;
|
|
}
|
|
|
|
@Entity({ name: "license_allocation_history" })
|
|
export class LicenseAllocationHistory {
|
|
@PrimaryGeneratedColumn()
|
|
id: number;
|
|
|
|
@Column()
|
|
user_id: number;
|
|
|
|
@Column()
|
|
license_id: number;
|
|
|
|
@Column()
|
|
is_allocated: boolean;
|
|
|
|
@Column()
|
|
account_id: number;
|
|
|
|
@Column()
|
|
executed_at: Date;
|
|
|
|
@Column()
|
|
switch_from_type: string;
|
|
|
|
@Column({ nullable: true, type: "datetime" })
|
|
deleted_at: Date | null;
|
|
|
|
@Column({ nullable: true, type: "varchar" })
|
|
created_by: string | null;
|
|
|
|
@CreateDateColumn({
|
|
default: () => "datetime('now', 'localtime')",
|
|
type: "datetime",
|
|
})
|
|
created_at: Date;
|
|
|
|
@Column({ nullable: true, type: "varchar" })
|
|
updated_by: string | null;
|
|
|
|
@UpdateDateColumn({
|
|
default: () => "datetime('now', 'localtime')",
|
|
type: "datetime",
|
|
})
|
|
updated_at: Date;
|
|
|
|
@ManyToOne(() => License, (licenses) => licenses.id, {
|
|
createForeignKeyConstraints: false,
|
|
}) // createForeignKeyConstraintsはSQLite用設定値.本番用は別途migrationで設定
|
|
@JoinColumn({ name: "license_id" })
|
|
license: License | null;
|
|
}
|