это бизнес логика, ее надо держать в модели