Create a full-stack Minimum Viable Product (MVP) for a SaaS application called "Line Seller" (Satır Satıcı). The application's core functionality is to help users generate compelling one-liner descriptions for their projects, leveraging AI and sales psychology principles. The tech stack should be Next.js with the App Router, Drizzle ORM for database management, and PostgreSQL as the database. The application must support user authentication (email/password) and have a multi-page structure.
**Project Structure:**
- Use the `app/` directory for routing.
- Implement separate pages for authentication (login, signup), the main project input form, and a dashboard to view saved descriptions.
**Database Schema (Drizzle ORM):**
- `users` table: `id` (UUID, primary key), `email` (text, unique, not null), `passwordHash` (text, not null), `createdAt` (timestamp, default now()).
- `projects` table: `id` (UUID, primary key), `userId` (UUID, foreign key to users.id), `title` (text, not null), `description` (text), `createdAt` (timestamp, default now()).
- `generatedLines` table: `id` (UUID, primary key), `projectId` (UUID, foreign key to projects.id), `line` (text, not null), `isSaved` (boolean, default false), `createdAt` (timestamp, default now()).
**API Routes (app/api/):**
- Implement CRUD operations for projects and generated lines.
- **POST /api/projects:** Create a new project entry.
- **GET /api/projects:** Get all projects for the logged-in user.
- **GET /api/projects/[projectId]:** Get a specific project.
- **PUT /api/projects/[projectId]:** Update a project.
- **DELETE /api/projects/[projectId]:** Delete a project.
- **POST /api/generate-line:** Accept project title and description, call an AI model (simulate with placeholder logic for now, but structure for integration) to generate 3 one-liners, and store them associated with the project.
- **GET /api/projects/[projectId]/lines:** Get all generated lines for a specific project.
- **PUT /api/lines/[lineId]:** Update a specific generated line (e.g., mark as saved).
**Frontend (app/ directory):**
- **Authentication Pages:** Build functional signup and login forms that interact with backend API routes. Implement basic client-side validation.
- **Input Page (`/` or `/new-project`):** A form for users to input their project title and a brief description. This page should submit the data to the backend to initiate line generation.
- **Dashboard Page (`/dashboard`):** Display a list of the user's projects. Clicking on a project should navigate to a detail view showing the generated one-liners. Include functionality to save or discard generated lines.
- **Project Detail Page (`/projects/[projectId]`):** Show the details of a specific project and its associated generated one-liners. Allow users to mark lines as 'saved' or 'unsaved'.
**AI Integration (Placeholder):**
- For the MVP, the `/api/generate-line` route should return 3 hardcoded, example one-liners. However, the code structure must be such that a real AI model (like OpenAI's GPT-3/4 or a similar service) can be integrated later by replacing the placeholder logic within this API route.
**Key Requirements:**
- **Full CRUD:** Ensure all Create, Read, Update, and Delete operations are functional for projects and generated lines.
- **User Authentication:** Securely handle user registration and login.
- **Responsive UI:** The frontend should be reasonably responsive for desktop and mobile views.
- **Clear Navigation:** Implement intuitive navigation between pages.
- **Error Handling:** Include basic error handling on both frontend and backend.