import { DomainError } from "./base"; export class MissingFieldsError extends DomainError { constructor(fields: string[]) { super(`Missing required fields: ${fields.join(", ")}`, 400); } } export class ShortPasswordError extends DomainError { constructor() { super("Password must be at least 8 characters", 400); } } export class DuplicateEmailError extends DomainError { constructor(email: string) { super(`${email} is already in use`, 409); } } export class InvalidEmailError extends DomainError { constructor() { super(`Email is invalid`, 400); } } export class UserNotFoundError extends DomainError { constructor(id?: number) { super(id ? `User ${id} not found` : "User not found", 404); } }