87 lines
2.1 KiB
TypeScript
87 lines
2.1 KiB
TypeScript
import { DataTypes, Model, Optional } from 'sequelize';
|
|
import { sequelize } from '@config/database';
|
|
import { Form1626asUploadLog } from './Form1626asUploadLog';
|
|
|
|
export interface Form1626asQuarterSnapshotAttributes {
|
|
id: number;
|
|
tanNumber: string;
|
|
financialYear: string;
|
|
quarter: string;
|
|
aggregatedAmount: number;
|
|
uploadLogId?: number | null;
|
|
createdAt: Date;
|
|
}
|
|
|
|
interface Form1626asQuarterSnapshotCreationAttributes
|
|
extends Optional<Form1626asQuarterSnapshotAttributes, 'id' | 'uploadLogId' | 'createdAt'> {}
|
|
|
|
class Form1626asQuarterSnapshot
|
|
extends Model<Form1626asQuarterSnapshotAttributes, Form1626asQuarterSnapshotCreationAttributes>
|
|
implements Form1626asQuarterSnapshotAttributes
|
|
{
|
|
public id!: number;
|
|
public tanNumber!: string;
|
|
public financialYear!: string;
|
|
public quarter!: string;
|
|
public aggregatedAmount!: number;
|
|
public uploadLogId?: number | null;
|
|
public createdAt!: Date;
|
|
|
|
public uploadLog?: Form1626asUploadLog;
|
|
}
|
|
|
|
Form1626asQuarterSnapshot.init(
|
|
{
|
|
id: {
|
|
type: DataTypes.INTEGER,
|
|
autoIncrement: true,
|
|
primaryKey: true,
|
|
},
|
|
tanNumber: {
|
|
type: DataTypes.STRING(20),
|
|
allowNull: false,
|
|
field: 'tan_number',
|
|
},
|
|
financialYear: {
|
|
type: DataTypes.STRING(20),
|
|
allowNull: false,
|
|
field: 'financial_year',
|
|
},
|
|
quarter: {
|
|
type: DataTypes.STRING(10),
|
|
allowNull: false,
|
|
},
|
|
aggregatedAmount: {
|
|
type: DataTypes.DECIMAL(15, 2),
|
|
allowNull: false,
|
|
field: 'aggregated_amount',
|
|
},
|
|
uploadLogId: {
|
|
type: DataTypes.INTEGER,
|
|
allowNull: true,
|
|
field: 'upload_log_id',
|
|
references: { model: 'form_16_26as_upload_log', key: 'id' },
|
|
onDelete: 'SET NULL',
|
|
},
|
|
createdAt: {
|
|
type: DataTypes.DATE,
|
|
allowNull: false,
|
|
field: 'created_at',
|
|
},
|
|
},
|
|
{
|
|
sequelize,
|
|
tableName: 'form_16_26as_quarter_snapshots',
|
|
timestamps: false,
|
|
underscored: true,
|
|
}
|
|
);
|
|
|
|
Form1626asQuarterSnapshot.belongsTo(Form1626asUploadLog, {
|
|
as: 'uploadLog',
|
|
foreignKey: 'uploadLogId',
|
|
targetKey: 'id',
|
|
});
|
|
|
|
export { Form1626asQuarterSnapshot };
|