package errors

const (
	// Authentication & Authorization (1000-1999)
	ErrCodeInvalidCredentials ErrorCode = 1000
	ErrCodeTokenExpired       ErrorCode = 1001
	ErrCodeTokenInvalid       ErrorCode = 1002
	ErrCodeForbidden          ErrorCode = 1003
	ErrCodeUnauthorized       ErrorCode = 1004

	// Validation (2000-2999)
	ErrCodeValidation    ErrorCode = 2000
	ErrCodeRequiredField ErrorCode = 2001
	ErrCodeInvalidFormat ErrorCode = 2002
	ErrCodeOutOfRange    ErrorCode = 2003

	// Resource (3000-3999)
	ErrCodeNotFound      ErrorCode = 3000
	ErrCodeAlreadyExists ErrorCode = 3001
	ErrCodeConflict      ErrorCode = 3002

	// Business Logic (4000-4999)
	ErrCodeOperationNotAllowed ErrorCode = 4000
	ErrCodeQuotaExceeded       ErrorCode = 4005

	// Rate Limiting (5000-5099)
	ErrCodeRateLimitExceeded ErrorCode = 5000

	// Internal (9000-9999)
	ErrCodeInternal ErrorCode = 9000
	ErrCodeDatabase ErrorCode = 9001
)
