Это всего лишь хотелка, я не претендую на глубокое знание движка, поэтому не ждите, что будет техпроект
если это поможет давайте перефразируем:
задачу:
1 авторизованный пользователь магазина (frontend) или покупатель
1.1 должен иметь возможность добавлять редактировать или удалять сущность "ссылка" следующей структуры:
картинка,
описание,
гиперссылка,
гуид-идентификатор (скрытый атрибут)
при этом, картинки не обязательны и выбираются из библиотеки загруженных изображений,
после создания допускается редактировать только атрибуты "описание" или "ссылка", редактирование других атрибутов должно быть запрещено.
удаление возможно только сущностей, по которым нет оплат (про оплаты см. ниже п.1.3, п.1.4)
1.2 для каждой вновь создаваемой покупателем сущности автоматически должно быть сформировано перенаправление вида:
[фиксированный путь от корня сайта]\[пользователь]\[гуид из таблицы]
на место указанное в поле [гиперссылка] таблицы
интерфейс пользователя для перенаправлений не требуется, только соответствующая обработка web запросов, фильтрация обрабатываемых запросов по признаку авторизаванности пользователя или другим признакам не предусматривается
требуется учитывать количество переходов либо остатка времени оплаченных переходов ( см. п. 1.3) перенаправление должно осуществляться если оно оплачено (есть единицы переходов или оплаченное время переходов) учитываемое количество определяется наиболее ранней действующей оплатой и не заблокировано администратором (см. п.2.1)
1.3 покупатель должен иметь возможность выбрать одну или несколько сущностей "ссылка" и включать в корзину оплату осуществления перенаправления по созданным им "ссылкам" выбирая количество
по времени
или по количеству переходов.
1.4. Интерфейс покупателя должен предусматривать отображение под каждой строкой сущностей "ссылка" перечень неизрасходованных оплат по данной ссылке в хронологическом порядке покупки:
[картинка] [описание] [ссылка]
[номер оплаты 1] [дата покупки] [полное количество] [оставшееся количество] [единицы изменения]
[номер оплаты 2] [дата покупки] [полное количество] [оставшееся количество] [единицы изменения]
требуется отображать актуальное количество переходов или оставшегося времени (см. п.1.2) пользователю
2. администратор
2.1.должен иметь возможность просмотра информации по всем ссылкам всех пользователей с возможностью заблокировать переход по любой ссылке любого пользователя:
[пользователь] [картинка] [описание] [ссылка] галочка для блокировки
[номер оплаты 1] [дата покупки] [полное количество] [оставшееся количество] [единицы изменения]
[номер оплаты 2] [дата покупки] [полное количество] [оставшееся количество] [единицы изменения]
должны быть предусмотрены функции фильтрации по пользователю, описанию и ссылке.