import { DataTypes, Model } from 'sequelize';
import sequelize from '../../config/sequelize';
import Rental from './Rental';

class RentalImage extends Model {
    public id!: number;
    public rental_id!: number;
    public image_url!: string;
    public readonly created_at!: Date;
    public readonly updated_at!: Date;
}

RentalImage.init(
    {
        id: {
            type: DataTypes.INTEGER,
            autoIncrement: true,
            primaryKey: true
        },
        rental_id: {
            type: DataTypes.INTEGER,
            allowNull: false,
            references: {
                model: 'rentals',
                key: 'id'
            }
        },
        image_url: {
            type: DataTypes.TEXT,
            allowNull: false
        },
        created_at: {
            type: DataTypes.DATE,
            defaultValue: DataTypes.NOW
        },
        updated_at: {
            type: DataTypes.DATE,
            defaultValue: DataTypes.NOW
        }
    },
    {
        sequelize,
        modelName: 'RentalImage',
        tableName: 'rental_images',
        timestamps: true,
        createdAt: 'created_at',
        updatedAt: 'updated_at'
    }
);

// تعریف رابطه
Rental.hasMany(RentalImage, { foreignKey: 'rental_id', as: 'images' });
RentalImage.belongsTo(Rental, { foreignKey: 'rental_id', as: 'rental' });

export default RentalImage;