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 {} class Form1626asQuarterSnapshot extends Model 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 };