import { factories } from '@strapi/strapi';

export default factories.createCoreController('api::vehicle.vehicle', ({ strapi }: { strapi: any }) => ({
  
  async update(ctx: any) {
    const { id } = ctx.params;
    const userId = ctx.state.user.id;
    
    // Verify the vehicle belongs to the logged-in user
    // Note: In Strapi v5, the URL parameter is the 'documentId'
    const [vehicle] = await strapi.documents('api::vehicle.vehicle').findMany({
      filters: { documentId: id, users_permissions_user: userId }
    });
    
    if (!vehicle) {
      return ctx.unauthorized("You can only edit your own vehicles.");
    }
    
    return super.update(ctx);
  },

  async delete(ctx: any) {
    const { id } = ctx.params;
    const userId = ctx.state.user.id;
    
    // Verify the vehicle belongs to the logged-in user
    const [vehicle] = await strapi.documents('api::vehicle.vehicle').findMany({
      filters: { documentId: id, users_permissions_user: userId }
    });
    
    if (!vehicle) {
      return ctx.unauthorized("You can only delete your own vehicles.");
    }
    
    return super.delete(ctx);
  }
}));