C# .NET ASP WEB API. Нексогональная архитектура. Как сделать эти классы? В папке Domain/Models? Может еще какие папки посоветуешь добавить под определенные сущности? Вот код: [-- Таблица пользователей CREATE TABLE users ( user_id SERIAL PRIMARY KEY, username VARCHAR(50) UNIQUE NOT NULL, email VARCHAR(100) UNIQUE NOT NULL, password_hash VARCHAR(255) NOT NULL, registration_date TIMESTAMP DEFAULT NOW(), first_name VARCHAR(50), last_name VARCHAR(50), phone VARCHAR(20) ); -- Таблица статусов запчастей CREATE TABLE part_status ( status_id SERIAL PRIMARY KEY, status_name VARCHAR(50) UNIQUE NOT NULL ); -- Вставка возможных статусов INSERT INTO part_status (status_name) VALUES ('доступна'), ('обменяна'), ('продана'), ('запрос на обмен'); -- Таблица типов двигателей CREATE TABLE engine_types ( engine_type_id SERIAL PRIMARY KEY, engine_type_name VARCHAR(50) UNIQUE NOT NULL ); -- Вставка типов двигателей INSERT INTO engine_types (engine_type_name) VALUES ('Бензиновый'), ('Дизельный'), ('Гибридный'), ('Электрический'); -- Таблица трансмиссий CREATE TABLE transmissions ( transmission_id SERIAL PRIMARY KEY, transmission_type_name VARCHAR(50) UNIQUE NOT NULL ); -- Вставка типов трансмиссий INSERT INTO transmissions (transmission_type_name) VALUES ('Механическая'), ('Автоматическая'), ('Вариатор'), ('Роботизированная'); -- Таблица автомобилей пользователя CREATE TABLE cars ( car_id SERIAL PRIMARY KEY, user_id INTEGER REFERENCES users(user_id) ON DELETE CASCADE, make VARCHAR(50) NOT NULL, -- Марка автомобиля model VARCHAR(50) NOT NULL, -- Модель автомобиля year SMALLINT, -- Год выпуска engine_type_id INTEGER REFERENCES engine_types(engine_type_id), transmission_id INTEGER REFERENCES transmissions(transmission_id) ); -- Таблица запчастей CREATE TABLE parts ( part_id SERIAL PRIMARY KEY, user_id INTEGER REFERENCES users(user_id) ON DELETE CASCADE, car_id INTEGER REFERENCES cars(car_id) ON DELETE SET NULL, part_name VARCHAR(100) NOT NULL, description TEXT, condition VARCHAR(50), availability_status INTEGER REFERENCES part_status(status_id), -- Использование числового статуса posting_date TIMESTAMP DEFAULT NOW() ); -- Таблица услуг CREATE TABLE services ( service_id SERIAL PRIMARY KEY, user_id INTEGER REFERENCES users(user_id) ON DELETE CASCADE, service_name VARCHAR(100) NOT NULL, description TEXT, offer_or_request VARCHAR(10) CHECK (offer_or_request IN ('offer', 'request')), -- 'offer' для предложений, 'request' для запросов status VARCHAR(20), posting_date TIMESTAMP DEFAULT NOW() ); -- Таблица диалогов для общения между пользователями CREATE TABLE conversations ( conversation_id SERIAL PRIMARY KEY ); -- Таблица сообщений CREATE TABLE messages ( message_id SERIAL PRIMARY KEY, conversation_id INTEGER REFERENCES conversations(conversation_id) ON DELETE CASCADE, sender_user_id INTEGER REFERENCES users(user_id) ON DELETE CASCADE, message_text TEXT NOT NULL, timestamp TIMESTAMP DEFAULT NOW() ); -- Таблица участников диалога CREATE TABLE conversation_participants ( conversation_id INTEGER REFERENCES conversations(conversation_id) ON DELETE CASCADE, user_id INTEGER REFERENCES users(user_id) ON DELETE CASCADE, PRIMARY KEY (conversation_id, user_id) ); -- Таблица отчетов (фото и видео) CREATE TABLE reports ( report_id SERIAL PRIMARY KEY, user_id INTEGER REFERENCES users(user_id) ON DELETE CASCADE, title VARCHAR(200) NOT NULL, description TEXT, content_url TEXT NOT NULL, -- Ссылка на файл фото или видео timestamp TIMESTAMP DEFAULT NOW() ); -- Таблица комментариев к отчетам CREATE TABLE comments ( comment_id SERIAL PRIMARY KEY, report_id INTEGER REFERENCES reports(report_id) ON DELETE CASCADE, user_id INTEGER REFERENCES users(user_id) ON DELETE CASCADE, comment_text TEXT NOT NULL, timestamp TIMESTAMP DEFAULT NOW() ); -- Таблица уведомлений CREATE TABLE notifications ( notification_id SERIAL PRIMARY KEY, user_id INTEGER REFERENCES users(user_id) ON DELETE CASCADE, notification_type VARCHAR(50), -- Например, 'interest_in_part', 'interest_in_service' reference_id INTEGER, -- Идентификатор связанного элемента (part_id, service_id и т.д.) created_at TIMESTAMP DEFAULT NOW(), read_status BOOLEAN DEFAULT FALSE ); ]