- Added Blog and BlogPost models with necessary fields and relationships. - Created blogRouter for handling blog-related API endpoints including CRUD operations. - Developed BlogService for business logic related to blogs and posts, including sharing functionality. - Implemented API client methods for frontend to interact with blog-related endpoints. - Added internationalization support for blog-related text in English and German. - Created Vue components for blog editing, listing, and viewing, including a rich text editor for post content. - Enhanced user experience with form validations and dynamic visibility settings based on user input.
45 lines
833 B
JavaScript
45 lines
833 B
JavaScript
import { Model, DataTypes } from 'sequelize';
|
|
import { sequelize } from '../../utils/sequelize.js';
|
|
|
|
class BlogPost extends Model {}
|
|
|
|
BlogPost.init({
|
|
blogId: {
|
|
type: DataTypes.INTEGER,
|
|
allowNull: false,
|
|
field: 'blog_id'
|
|
},
|
|
userId: {
|
|
type: DataTypes.INTEGER,
|
|
allowNull: false,
|
|
field: 'user_id'
|
|
},
|
|
title: {
|
|
type: DataTypes.STRING(255),
|
|
allowNull: false,
|
|
},
|
|
content: {
|
|
type: DataTypes.TEXT,
|
|
allowNull: false,
|
|
},
|
|
createdAt: {
|
|
type: DataTypes.DATE,
|
|
defaultValue: DataTypes.NOW,
|
|
field: 'created_at'
|
|
},
|
|
updatedAt: {
|
|
type: DataTypes.DATE,
|
|
defaultValue: DataTypes.NOW,
|
|
field: 'updated_at'
|
|
}
|
|
}, {
|
|
sequelize,
|
|
modelName: 'BlogPost',
|
|
tableName: 'blog_post',
|
|
schema: 'community',
|
|
timestamps: true,
|
|
underscored: true,
|
|
});
|
|
|
|
export default BlogPost;
|