You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
2.1 KiB
74 lines
2.1 KiB
// CREATE TABLE attachments (
|
|
// id INT PRIMARY KEY AUTO_INCREMENT,
|
|
// filename VARCHAR(255) NOT NULL,
|
|
// filepath VARCHAR(255) NOT NULL,
|
|
// file_type VARCHAR(50) NOT NULL,
|
|
// file_size INT NOT NULL,
|
|
// created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
// updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
|
// );
|
|
|
|
import { Sequelize, DataTypes, Optional, Model } from "sequelize"
|
|
|
|
interface AttachmentAttributes {
|
|
id: number
|
|
filename: string
|
|
filepath: string
|
|
file_type: string
|
|
file_size: number
|
|
|
|
createdAt?: Date
|
|
updatedAt?: Date
|
|
}
|
|
|
|
export interface AttachmentInput extends Optional<AttachmentAttributes, "id"> {}
|
|
export interface AttachmentOutput extends Required<AttachmentAttributes> {}
|
|
export type TAttachmentModel = ReturnType<typeof AttachmentModel>
|
|
|
|
type DT = typeof DataTypes
|
|
export default function AttachmentModel(sequelize: Sequelize, DataTypes: DT) {
|
|
class Attachment extends Model<AttachmentAttributes, AttachmentInput> implements AttachmentAttributes {
|
|
public id!: number
|
|
public filename!: string
|
|
public filepath!: string
|
|
public file_type!: string
|
|
public file_size!: number
|
|
|
|
// timestamps!
|
|
public readonly createdAt!: Date
|
|
public readonly updatedAt!: Date
|
|
}
|
|
Attachment.init(
|
|
{
|
|
id: {
|
|
type: DataTypes.INTEGER,
|
|
autoIncrement: true,
|
|
primaryKey: true,
|
|
},
|
|
filename: {
|
|
type: DataTypes.STRING,
|
|
allowNull: false,
|
|
},
|
|
filepath: {
|
|
type: DataTypes.STRING,
|
|
allowNull: false,
|
|
},
|
|
file_type: {
|
|
type: DataTypes.STRING,
|
|
allowNull: false,
|
|
},
|
|
file_size: {
|
|
type: DataTypes.INTEGER,
|
|
allowNull: false,
|
|
},
|
|
},
|
|
{
|
|
modelName: "attachment",
|
|
sequelize,
|
|
underscored: true,
|
|
timestamps: true,
|
|
},
|
|
)
|
|
|
|
return Attachment
|
|
}
|
|
|