Rebrand from MyCrib to Casera

- Update Go module from mycrib-api to casera-api
- Update all import statements across 69 Go files
- Update admin panel branding (title, sidebar, login form)
- Update email templates (subjects, bodies, signatures)
- Update PDF report generation branding
- Update Docker container names and network
- Update config defaults (database name, email sender, APNS topic)
- Update README and documentation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Trey t
2025-11-28 21:10:48 -06:00
parent 99465a590d
commit c7dc56e2d2
84 changed files with 287 additions and 287 deletions

View File

@@ -7,9 +7,9 @@ import (
"github.com/gin-gonic/gin"
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/admin/dto"
"github.com/treytartt/mycrib-api/internal/middleware"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/casera-api/internal/admin/dto"
"github.com/treytartt/casera-api/internal/middleware"
"github.com/treytartt/casera-api/internal/models"
)
// AdminUserManagementHandler handles admin user management endpoints

View File

@@ -5,10 +5,10 @@ import (
"github.com/gin-gonic/gin"
"github.com/treytartt/mycrib-api/internal/config"
"github.com/treytartt/mycrib-api/internal/middleware"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/mycrib-api/internal/repositories"
"github.com/treytartt/casera-api/internal/config"
"github.com/treytartt/casera-api/internal/middleware"
"github.com/treytartt/casera-api/internal/models"
"github.com/treytartt/casera-api/internal/repositories"
)
// AdminAuthHandler handles admin authentication endpoints

View File

@@ -7,8 +7,8 @@ import (
"github.com/gin-gonic/gin"
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/admin/dto"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/casera-api/internal/admin/dto"
"github.com/treytartt/casera-api/internal/models"
)
// AdminAuthTokenHandler handles admin auth token management endpoints

View File

@@ -8,8 +8,8 @@ import (
"github.com/shopspring/decimal"
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/admin/dto"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/casera-api/internal/admin/dto"
"github.com/treytartt/casera-api/internal/models"
)
// AdminCompletionHandler handles admin task completion management endpoints

View File

@@ -7,8 +7,8 @@ import (
"github.com/gin-gonic/gin"
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/admin/dto"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/casera-api/internal/admin/dto"
"github.com/treytartt/casera-api/internal/models"
)
// AdminContractorHandler handles admin contractor management endpoints

View File

@@ -7,7 +7,7 @@ import (
"github.com/gin-gonic/gin"
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/casera-api/internal/models"
)
// AdminDashboardHandler handles admin dashboard endpoints

View File

@@ -9,8 +9,8 @@ import (
"github.com/shopspring/decimal"
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/admin/dto"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/casera-api/internal/admin/dto"
"github.com/treytartt/casera-api/internal/models"
)
// AdminDocumentHandler handles admin document management endpoints

View File

@@ -7,7 +7,7 @@ import (
"github.com/gin-gonic/gin"
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/casera-api/internal/models"
)
// AdminLimitationsHandler handles subscription limitations management

View File

@@ -7,8 +7,8 @@ import (
"github.com/gin-gonic/gin"
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/admin/dto"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/casera-api/internal/admin/dto"
"github.com/treytartt/casera-api/internal/models"
)
// AdminLookupHandler handles admin lookup table management endpoints

View File

@@ -9,10 +9,10 @@ import (
"github.com/gin-gonic/gin"
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/admin/dto"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/mycrib-api/internal/push"
"github.com/treytartt/mycrib-api/internal/services"
"github.com/treytartt/casera-api/internal/admin/dto"
"github.com/treytartt/casera-api/internal/models"
"github.com/treytartt/casera-api/internal/push"
"github.com/treytartt/casera-api/internal/services"
)
// AdminNotificationHandler handles admin notification management endpoints

View File

@@ -7,8 +7,8 @@ import (
"github.com/gin-gonic/gin"
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/admin/dto"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/casera-api/internal/admin/dto"
"github.com/treytartt/casera-api/internal/models"
)
// AdminNotificationPrefsHandler handles notification preference management

View File

@@ -9,8 +9,8 @@ import (
"github.com/shopspring/decimal"
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/admin/dto"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/casera-api/internal/admin/dto"
"github.com/treytartt/casera-api/internal/models"
)
// AdminResidenceHandler handles admin residence management endpoints

View File

@@ -10,7 +10,7 @@ import (
"github.com/gin-gonic/gin"
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/casera-api/internal/models"
)
// AdminSettingsHandler handles system settings management

View File

@@ -7,8 +7,8 @@ import (
"github.com/gin-gonic/gin"
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/admin/dto"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/casera-api/internal/admin/dto"
"github.com/treytartt/casera-api/internal/models"
)
// AdminSubscriptionHandler handles admin subscription management endpoints

View File

@@ -9,8 +9,8 @@ import (
"github.com/shopspring/decimal"
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/admin/dto"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/casera-api/internal/admin/dto"
"github.com/treytartt/casera-api/internal/models"
)
// AdminTaskHandler handles admin task management endpoints

View File

@@ -7,8 +7,8 @@ import (
"github.com/gin-gonic/gin"
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/admin/dto"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/casera-api/internal/admin/dto"
"github.com/treytartt/casera-api/internal/models"
)
// AdminUserHandler handles admin user management endpoints

View File

@@ -9,12 +9,12 @@ import (
"github.com/gin-gonic/gin"
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/admin/handlers"
"github.com/treytartt/mycrib-api/internal/config"
"github.com/treytartt/mycrib-api/internal/middleware"
"github.com/treytartt/mycrib-api/internal/push"
"github.com/treytartt/mycrib-api/internal/repositories"
"github.com/treytartt/mycrib-api/internal/services"
"github.com/treytartt/casera-api/internal/admin/handlers"
"github.com/treytartt/casera-api/internal/config"
"github.com/treytartt/casera-api/internal/middleware"
"github.com/treytartt/casera-api/internal/push"
"github.com/treytartt/casera-api/internal/repositories"
"github.com/treytartt/casera-api/internal/services"
)
// Dependencies holds optional services for admin routes

View File

@@ -210,7 +210,7 @@ func setDefaults() {
viper.SetDefault("DB_HOST", "localhost")
viper.SetDefault("DB_PORT", 5432)
viper.SetDefault("POSTGRES_USER", "postgres")
viper.SetDefault("POSTGRES_DB", "mycrib")
viper.SetDefault("POSTGRES_DB", "casera")
viper.SetDefault("DB_SSLMODE", "disable")
viper.SetDefault("DB_MAX_OPEN_CONNS", 25)
viper.SetDefault("DB_MAX_IDLE_CONNS", 10)
@@ -226,11 +226,11 @@ func setDefaults() {
viper.SetDefault("EMAIL_USE_TLS", true)
viper.SetDefault("EMAIL_HOST_USER", "")
viper.SetDefault("EMAIL_HOST_PASSWORD", "")
viper.SetDefault("DEFAULT_FROM_EMAIL", "MyCrib <noreply@mycrib.com>")
viper.SetDefault("DEFAULT_FROM_EMAIL", "Casera <noreply@casera.com>")
// Push notification defaults
viper.SetDefault("GORUSH_URL", "http://localhost:8088")
viper.SetDefault("APNS_TOPIC", "com.example.mycrib")
viper.SetDefault("APNS_TOPIC", "com.example.casera")
viper.SetDefault("APNS_USE_SANDBOX", true)
// Worker defaults (all times in UTC)

View File

@@ -9,8 +9,8 @@ import (
"gorm.io/gorm"
"gorm.io/gorm/logger"
"github.com/treytartt/mycrib-api/internal/config"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/casera-api/internal/config"
"github.com/treytartt/casera-api/internal/models"
)
var db *gorm.DB

View File

@@ -5,7 +5,7 @@ import (
"github.com/shopspring/decimal"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/casera-api/internal/models"
)
// CreateDocumentRequest represents the request to create a document

View File

@@ -3,7 +3,7 @@ package responses
import (
"time"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/casera-api/internal/models"
)
// UserResponse represents a user in API responses

View File

@@ -3,7 +3,7 @@ package responses
import (
"time"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/casera-api/internal/models"
)
// ContractorSpecialtyResponse represents a contractor specialty

View File

@@ -5,7 +5,7 @@ import (
"github.com/shopspring/decimal"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/casera-api/internal/models"
)
// DocumentUserResponse represents a user in document context

View File

@@ -5,7 +5,7 @@ import (
"github.com/shopspring/decimal"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/casera-api/internal/models"
)
// ResidenceTypeResponse represents a residence type in the API response

View File

@@ -6,7 +6,7 @@ import (
"github.com/shopspring/decimal"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/casera-api/internal/models"
)
// TaskCategoryResponse represents a task category

View File

@@ -7,10 +7,10 @@ import (
"github.com/gin-gonic/gin"
"github.com/rs/zerolog/log"
"github.com/treytartt/mycrib-api/internal/dto/requests"
"github.com/treytartt/mycrib-api/internal/dto/responses"
"github.com/treytartt/mycrib-api/internal/middleware"
"github.com/treytartt/mycrib-api/internal/services"
"github.com/treytartt/casera-api/internal/dto/requests"
"github.com/treytartt/casera-api/internal/dto/responses"
"github.com/treytartt/casera-api/internal/middleware"
"github.com/treytartt/casera-api/internal/services"
)
// AuthHandler handles authentication endpoints

View File

@@ -10,11 +10,11 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/treytartt/mycrib-api/internal/config"
"github.com/treytartt/mycrib-api/internal/dto/requests"
"github.com/treytartt/mycrib-api/internal/repositories"
"github.com/treytartt/mycrib-api/internal/services"
"github.com/treytartt/mycrib-api/internal/testutil"
"github.com/treytartt/casera-api/internal/config"
"github.com/treytartt/casera-api/internal/dto/requests"
"github.com/treytartt/casera-api/internal/repositories"
"github.com/treytartt/casera-api/internal/services"
"github.com/treytartt/casera-api/internal/testutil"
)
func setupAuthHandler(t *testing.T) (*AuthHandler, *gin.Engine, *repositories.UserRepository) {

View File

@@ -7,10 +7,10 @@ import (
"github.com/gin-gonic/gin"
"github.com/treytartt/mycrib-api/internal/dto/requests"
"github.com/treytartt/mycrib-api/internal/middleware"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/mycrib-api/internal/services"
"github.com/treytartt/casera-api/internal/dto/requests"
"github.com/treytartt/casera-api/internal/middleware"
"github.com/treytartt/casera-api/internal/models"
"github.com/treytartt/casera-api/internal/services"
)
// ContractorHandler handles contractor-related HTTP requests

View File

@@ -11,10 +11,10 @@ import (
"github.com/gin-gonic/gin"
"github.com/shopspring/decimal"
"github.com/treytartt/mycrib-api/internal/dto/requests"
"github.com/treytartt/mycrib-api/internal/middleware"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/mycrib-api/internal/services"
"github.com/treytartt/casera-api/internal/dto/requests"
"github.com/treytartt/casera-api/internal/middleware"
"github.com/treytartt/casera-api/internal/models"
"github.com/treytartt/casera-api/internal/services"
)
// DocumentHandler handles document-related HTTP requests

View File

@@ -7,9 +7,9 @@ import (
"github.com/gin-gonic/gin"
"github.com/treytartt/mycrib-api/internal/middleware"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/mycrib-api/internal/services"
"github.com/treytartt/casera-api/internal/middleware"
"github.com/treytartt/casera-api/internal/models"
"github.com/treytartt/casera-api/internal/services"
)
// NotificationHandler handles notification-related HTTP requests

View File

@@ -7,10 +7,10 @@ import (
"github.com/gin-gonic/gin"
"github.com/treytartt/mycrib-api/internal/dto/requests"
"github.com/treytartt/mycrib-api/internal/middleware"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/mycrib-api/internal/services"
"github.com/treytartt/casera-api/internal/dto/requests"
"github.com/treytartt/casera-api/internal/middleware"
"github.com/treytartt/casera-api/internal/models"
"github.com/treytartt/casera-api/internal/services"
)
// ResidenceHandler handles residence-related HTTP requests

View File

@@ -11,11 +11,11 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/treytartt/mycrib-api/internal/config"
"github.com/treytartt/mycrib-api/internal/dto/requests"
"github.com/treytartt/mycrib-api/internal/repositories"
"github.com/treytartt/mycrib-api/internal/services"
"github.com/treytartt/mycrib-api/internal/testutil"
"github.com/treytartt/casera-api/internal/config"
"github.com/treytartt/casera-api/internal/dto/requests"
"github.com/treytartt/casera-api/internal/repositories"
"github.com/treytartt/casera-api/internal/services"
"github.com/treytartt/casera-api/internal/testutil"
"gorm.io/gorm"
)

View File

@@ -5,7 +5,7 @@ import (
"github.com/gin-gonic/gin"
"github.com/treytartt/mycrib-api/internal/services"
"github.com/treytartt/casera-api/internal/services"
)
// StaticDataHandler handles static/lookup data endpoints

View File

@@ -6,9 +6,9 @@ import (
"github.com/gin-gonic/gin"
"github.com/treytartt/mycrib-api/internal/middleware"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/mycrib-api/internal/services"
"github.com/treytartt/casera-api/internal/middleware"
"github.com/treytartt/casera-api/internal/models"
"github.com/treytartt/casera-api/internal/services"
)
// SubscriptionHandler handles subscription-related HTTP requests

View File

@@ -11,10 +11,10 @@ import (
"github.com/gin-gonic/gin"
"github.com/shopspring/decimal"
"github.com/treytartt/mycrib-api/internal/dto/requests"
"github.com/treytartt/mycrib-api/internal/middleware"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/mycrib-api/internal/services"
"github.com/treytartt/casera-api/internal/dto/requests"
"github.com/treytartt/casera-api/internal/middleware"
"github.com/treytartt/casera-api/internal/models"
"github.com/treytartt/casera-api/internal/services"
)
// TaskHandler handles task-related HTTP requests

View File

@@ -12,11 +12,11 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/treytartt/mycrib-api/internal/dto/requests"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/mycrib-api/internal/repositories"
"github.com/treytartt/mycrib-api/internal/services"
"github.com/treytartt/mycrib-api/internal/testutil"
"github.com/treytartt/casera-api/internal/dto/requests"
"github.com/treytartt/casera-api/internal/models"
"github.com/treytartt/casera-api/internal/repositories"
"github.com/treytartt/casera-api/internal/services"
"github.com/treytartt/casera-api/internal/testutil"
"gorm.io/gorm"
)

View File

@@ -5,7 +5,7 @@ import (
"github.com/gin-gonic/gin"
"github.com/treytartt/mycrib-api/internal/services"
"github.com/treytartt/casera-api/internal/services"
)
// UploadHandler handles file upload endpoints

View File

@@ -6,9 +6,9 @@ import (
"github.com/gin-gonic/gin"
"github.com/treytartt/mycrib-api/internal/middleware"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/mycrib-api/internal/services"
"github.com/treytartt/casera-api/internal/middleware"
"github.com/treytartt/casera-api/internal/models"
"github.com/treytartt/casera-api/internal/services"
)
// UserHandler handles user-related HTTP requests

View File

@@ -13,12 +13,12 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/treytartt/mycrib-api/internal/config"
"github.com/treytartt/mycrib-api/internal/handlers"
"github.com/treytartt/mycrib-api/internal/middleware"
"github.com/treytartt/mycrib-api/internal/repositories"
"github.com/treytartt/mycrib-api/internal/services"
"github.com/treytartt/mycrib-api/internal/testutil"
"github.com/treytartt/casera-api/internal/config"
"github.com/treytartt/casera-api/internal/handlers"
"github.com/treytartt/casera-api/internal/middleware"
"github.com/treytartt/casera-api/internal/repositories"
"github.com/treytartt/casera-api/internal/services"
"github.com/treytartt/casera-api/internal/testutil"
"gorm.io/gorm"
)

View File

@@ -9,9 +9,9 @@ import (
"github.com/gin-gonic/gin"
"github.com/golang-jwt/jwt/v5"
"github.com/treytartt/mycrib-api/internal/config"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/mycrib-api/internal/repositories"
"github.com/treytartt/casera-api/internal/config"
"github.com/treytartt/casera-api/internal/models"
"github.com/treytartt/casera-api/internal/repositories"
)
const (

View File

@@ -12,8 +12,8 @@ import (
"github.com/rs/zerolog/log"
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/mycrib-api/internal/services"
"github.com/treytartt/casera-api/internal/models"
"github.com/treytartt/casera-api/internal/services"
)
const (

View File

@@ -10,7 +10,7 @@ import (
"github.com/rs/zerolog/log"
"github.com/treytartt/mycrib-api/internal/config"
"github.com/treytartt/casera-api/internal/config"
)
// Platform constants

View File

@@ -6,7 +6,7 @@ import (
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/casera-api/internal/models"
)
var (

View File

@@ -3,7 +3,7 @@ package repositories
import (
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/casera-api/internal/models"
)
// ContractorRepository handles database operations for contractors

View File

@@ -5,7 +5,7 @@ import (
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/casera-api/internal/models"
)
// DocumentRepository handles database operations for documents

View File

@@ -5,7 +5,7 @@ import (
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/casera-api/internal/models"
)
// NotificationRepository handles database operations for notifications

View File

@@ -8,7 +8,7 @@ import (
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/casera-api/internal/models"
)
// ResidenceRepository handles database operations for residences

View File

@@ -7,8 +7,8 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/mycrib-api/internal/testutil"
"github.com/treytartt/casera-api/internal/models"
"github.com/treytartt/casera-api/internal/testutil"
)
func TestResidenceRepository_Create(t *testing.T) {

View File

@@ -5,7 +5,7 @@ import (
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/casera-api/internal/models"
)
// SubscriptionRepository handles database operations for subscriptions

View File

@@ -5,7 +5,7 @@ import (
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/casera-api/internal/models"
)
// TaskRepository handles database operations for tasks

View File

@@ -7,8 +7,8 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/mycrib-api/internal/testutil"
"github.com/treytartt/casera-api/internal/models"
"github.com/treytartt/casera-api/internal/testutil"
)
func TestTaskRepository_Create(t *testing.T) {

View File

@@ -7,7 +7,7 @@ import (
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/casera-api/internal/models"
)
var (

View File

@@ -6,8 +6,8 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/mycrib-api/internal/testutil"
"github.com/treytartt/casera-api/internal/models"
"github.com/treytartt/casera-api/internal/testutil"
)
func TestUserRepository_Create(t *testing.T) {

View File

@@ -8,14 +8,14 @@ import (
"github.com/gin-gonic/gin"
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/admin"
"github.com/treytartt/mycrib-api/internal/config"
"github.com/treytartt/mycrib-api/internal/handlers"
"github.com/treytartt/mycrib-api/internal/middleware"
"github.com/treytartt/mycrib-api/internal/push"
"github.com/treytartt/mycrib-api/internal/repositories"
"github.com/treytartt/mycrib-api/internal/services"
"github.com/treytartt/mycrib-api/pkg/utils"
"github.com/treytartt/casera-api/internal/admin"
"github.com/treytartt/casera-api/internal/config"
"github.com/treytartt/casera-api/internal/handlers"
"github.com/treytartt/casera-api/internal/middleware"
"github.com/treytartt/casera-api/internal/push"
"github.com/treytartt/casera-api/internal/repositories"
"github.com/treytartt/casera-api/internal/services"
"github.com/treytartt/casera-api/pkg/utils"
)
const Version = "2.0.0"

View File

@@ -9,11 +9,11 @@ import (
"golang.org/x/crypto/bcrypt"
"github.com/treytartt/mycrib-api/internal/config"
"github.com/treytartt/mycrib-api/internal/dto/requests"
"github.com/treytartt/mycrib-api/internal/dto/responses"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/mycrib-api/internal/repositories"
"github.com/treytartt/casera-api/internal/config"
"github.com/treytartt/casera-api/internal/dto/requests"
"github.com/treytartt/casera-api/internal/dto/responses"
"github.com/treytartt/casera-api/internal/models"
"github.com/treytartt/casera-api/internal/repositories"
)
var (

View File

@@ -9,7 +9,7 @@ import (
"github.com/redis/go-redis/v9"
"github.com/rs/zerolog/log"
"github.com/treytartt/mycrib-api/internal/config"
"github.com/treytartt/casera-api/internal/config"
)
// CacheService provides Redis caching functionality

View File

@@ -5,10 +5,10 @@ import (
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/dto/requests"
"github.com/treytartt/mycrib-api/internal/dto/responses"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/mycrib-api/internal/repositories"
"github.com/treytartt/casera-api/internal/dto/requests"
"github.com/treytartt/casera-api/internal/dto/responses"
"github.com/treytartt/casera-api/internal/models"
"github.com/treytartt/casera-api/internal/repositories"
)
// Contractor-related errors

View File

@@ -5,10 +5,10 @@ import (
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/dto/requests"
"github.com/treytartt/mycrib-api/internal/dto/responses"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/mycrib-api/internal/repositories"
"github.com/treytartt/casera-api/internal/dto/requests"
"github.com/treytartt/casera-api/internal/dto/responses"
"github.com/treytartt/casera-api/internal/models"
"github.com/treytartt/casera-api/internal/repositories"
)
// Document-related errors

View File

@@ -10,7 +10,7 @@ import (
"github.com/rs/zerolog/log"
"gopkg.in/gomail.v2"
"github.com/treytartt/mycrib-api/internal/config"
"github.com/treytartt/casera-api/internal/config"
)
// EmailService handles sending emails
@@ -86,7 +86,7 @@ func (s *EmailService) SendEmailWithAttachment(to, subject, htmlBody, textBody s
// SendWelcomeEmail sends a welcome email with verification code
func (s *EmailService) SendWelcomeEmail(to, firstName, code string) error {
subject := "Welcome to MyCrib - Verify Your Email"
subject := "Welcome to Casera - Verify Your Email"
name := firstName
if name == "" {
@@ -109,16 +109,16 @@ func (s *EmailService) SendWelcomeEmail(to, firstName, code string) error {
<body>
<div class="container">
<div class="header">
<h1>Welcome to MyCrib!</h1>
<h1>Welcome to Casera!</h1>
</div>
<p>Hi %s,</p>
<p>Thank you for creating a MyCrib account. To complete your registration, please verify your email address by entering the following code:</p>
<p>Thank you for creating a Casera account. To complete your registration, please verify your email address by entering the following code:</p>
<div class="code">%s</div>
<p>This code will expire in 24 hours.</p>
<p>If you didn't create a MyCrib account, you can safely ignore this email.</p>
<p>Best regards,<br>The MyCrib Team</p>
<p>If you didn't create a Casera account, you can safely ignore this email.</p>
<p>Best regards,<br>The Casera Team</p>
<div class="footer">
<p>&copy; %d MyCrib. All rights reserved.</p>
<p>&copy; %d Casera. All rights reserved.</p>
</div>
</div>
</body>
@@ -126,20 +126,20 @@ func (s *EmailService) SendWelcomeEmail(to, firstName, code string) error {
`, name, code, time.Now().Year())
textBody := fmt.Sprintf(`
Welcome to MyCrib!
Welcome to Casera!
Hi %s,
Thank you for creating a MyCrib account. To complete your registration, please verify your email address by entering the following code:
Thank you for creating a Casera account. To complete your registration, please verify your email address by entering the following code:
%s
This code will expire in 24 hours.
If you didn't create a MyCrib account, you can safely ignore this email.
If you didn't create a Casera account, you can safely ignore this email.
Best regards,
The MyCrib Team
The Casera Team
`, name, code)
return s.SendEmail(to, subject, htmlBody, textBody)
@@ -147,7 +147,7 @@ The MyCrib Team
// SendVerificationEmail sends an email verification code
func (s *EmailService) SendVerificationEmail(to, firstName, code string) error {
subject := "MyCrib - Verify Your Email"
subject := "Casera - Verify Your Email"
name := firstName
if name == "" {
@@ -174,9 +174,9 @@ func (s *EmailService) SendVerificationEmail(to, firstName, code string) error {
<div class="code">%s</div>
<p>This code will expire in 24 hours.</p>
<p>If you didn't request this, you can safely ignore this email.</p>
<p>Best regards,<br>The MyCrib Team</p>
<p>Best regards,<br>The Casera Team</p>
<div class="footer">
<p>&copy; %d MyCrib. All rights reserved.</p>
<p>&copy; %d Casera. All rights reserved.</p>
</div>
</div>
</body>
@@ -197,7 +197,7 @@ This code will expire in 24 hours.
If you didn't request this, you can safely ignore this email.
Best regards,
The MyCrib Team
The Casera Team
`, name, code)
return s.SendEmail(to, subject, htmlBody, textBody)
@@ -205,7 +205,7 @@ The MyCrib Team
// SendPasswordResetEmail sends a password reset email
func (s *EmailService) SendPasswordResetEmail(to, firstName, code string) error {
subject := "MyCrib - Password Reset Request"
subject := "Casera - Password Reset Request"
name := firstName
if name == "" {
@@ -235,9 +235,9 @@ func (s *EmailService) SendPasswordResetEmail(to, firstName, code string) error
<div class="warning">
<strong>Security Notice:</strong> If you didn't request a password reset, please ignore this email. Your password will remain unchanged.
</div>
<p>Best regards,<br>The MyCrib Team</p>
<p>Best regards,<br>The Casera Team</p>
<div class="footer">
<p>&copy; %d MyCrib. All rights reserved.</p>
<p>&copy; %d Casera. All rights reserved.</p>
</div>
</div>
</body>
@@ -258,7 +258,7 @@ This code will expire in 15 minutes.
SECURITY NOTICE: If you didn't request a password reset, please ignore this email. Your password will remain unchanged.
Best regards,
The MyCrib Team
The Casera Team
`, name, code)
return s.SendEmail(to, subject, htmlBody, textBody)
@@ -266,7 +266,7 @@ The MyCrib Team
// SendPasswordChangedEmail sends a password changed confirmation email
func (s *EmailService) SendPasswordChangedEmail(to, firstName string) error {
subject := "MyCrib - Your Password Has Been Changed"
subject := "Casera - Your Password Has Been Changed"
name := firstName
if name == "" {
@@ -289,13 +289,13 @@ func (s *EmailService) SendPasswordChangedEmail(to, firstName string) error {
<div class="container">
<h1>Password Changed</h1>
<p>Hi %s,</p>
<p>Your MyCrib password was successfully changed on %s.</p>
<p>Your Casera password was successfully changed on %s.</p>
<div class="warning">
<strong>Didn't make this change?</strong> If you didn't change your password, please contact us immediately at support@mycrib.com or reset your password.
<strong>Didn't make this change?</strong> If you didn't change your password, please contact us immediately at support@casera.app or reset your password.
</div>
<p>Best regards,<br>The MyCrib Team</p>
<p>Best regards,<br>The Casera Team</p>
<div class="footer">
<p>&copy; %d MyCrib. All rights reserved.</p>
<p>&copy; %d Casera. All rights reserved.</p>
</div>
</div>
</body>
@@ -307,12 +307,12 @@ Password Changed
Hi %s,
Your MyCrib password was successfully changed on %s.
Your Casera password was successfully changed on %s.
DIDN'T MAKE THIS CHANGE? If you didn't change your password, please contact us immediately at support@mycrib.com or reset your password.
DIDN'T MAKE THIS CHANGE? If you didn't change your password, please contact us immediately at support@casera.app or reset your password.
Best regards,
The MyCrib Team
The Casera Team
`, name, time.Now().UTC().Format("January 2, 2006 at 3:04 PM UTC"))
return s.SendEmail(to, subject, htmlBody, textBody)
@@ -320,7 +320,7 @@ The MyCrib Team
// SendTaskCompletedEmail sends an email notification when a task is completed
func (s *EmailService) SendTaskCompletedEmail(to, recipientName, taskTitle, completedByName, residenceName string) error {
subject := fmt.Sprintf("MyCrib - Task Completed: %s", taskTitle)
subject := fmt.Sprintf("Casera - Task Completed: %s", taskTitle)
name := recipientName
if name == "" {
@@ -353,9 +353,9 @@ func (s *EmailService) SendTaskCompletedEmail(to, recipientName, taskTitle, comp
<p class="task-title">%s</p>
<p class="task-meta">Completed by: %s<br>Completed on: %s</p>
</div>
<p>Best regards,<br>The MyCrib Team</p>
<p>Best regards,<br>The Casera Team</p>
<div class="footer">
<p>&copy; %d MyCrib. All rights reserved.</p>
<p>&copy; %d Casera. All rights reserved.</p>
</div>
</div>
</body>
@@ -374,7 +374,7 @@ Completed by: %s
Completed on: %s
Best regards,
The MyCrib Team
The Casera Team
`, name, residenceName, taskTitle, completedByName, time.Now().UTC().Format("January 2, 2006 at 3:04 PM"))
return s.SendEmail(to, subject, htmlBody, textBody)
@@ -382,7 +382,7 @@ The MyCrib Team
// SendTasksReportEmail sends a tasks report email with PDF attachment
func (s *EmailService) SendTasksReportEmail(to, recipientName, residenceName string, totalTasks, completed, pending, overdue int, pdfData []byte) error {
subject := fmt.Sprintf("MyCrib - Tasks Report for %s", residenceName)
subject := fmt.Sprintf("Casera - Tasks Report for %s", residenceName)
name := recipientName
if name == "" {
@@ -441,9 +441,9 @@ func (s *EmailService) SendTasksReportEmail(to, recipientName, residenceName str
</table>
</div>
<p>Open the attached PDF for the complete list of tasks with details.</p>
<p>Best regards,<br>The MyCrib Team</p>
<p>Best regards,<br>The Casera Team</p>
<div class="footer">
<p>&copy; %d MyCrib. All rights reserved.</p>
<p>&copy; %d Casera. All rights reserved.</p>
</div>
</div>
</body>
@@ -466,7 +466,7 @@ Summary:
Open the attached PDF for the complete list of tasks with details.
Best regards,
The MyCrib Team
The Casera Team
`, residenceName, name, residenceName, totalTasks, completed, pending, overdue)
// Create filename with timestamp

View File

@@ -7,9 +7,9 @@ import (
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/mycrib-api/internal/push"
"github.com/treytartt/mycrib-api/internal/repositories"
"github.com/treytartt/casera-api/internal/models"
"github.com/treytartt/casera-api/internal/push"
"github.com/treytartt/casera-api/internal/repositories"
)
// Notification-related errors

View File

@@ -164,7 +164,7 @@ func (s *PDFService) GenerateTasksReportPDF(report *TasksReportResponse) ([]byte
pdf.SetY(-25)
pdf.SetFont("Arial", "I", 9)
pdf.SetTextColor(128, 128, 128)
pdf.Cell(0, 10, fmt.Sprintf("MyCrib - Tasks Report for %s", report.ResidenceName))
pdf.Cell(0, 10, fmt.Sprintf("Casera - Tasks Report for %s", report.ResidenceName))
pdf.Ln(5)
pdf.Cell(0, 10, fmt.Sprintf("Generated on %s", time.Now().UTC().Format("2006-01-02 15:04:05 UTC")))

View File

@@ -6,11 +6,11 @@ import (
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/config"
"github.com/treytartt/mycrib-api/internal/dto/requests"
"github.com/treytartt/mycrib-api/internal/dto/responses"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/mycrib-api/internal/repositories"
"github.com/treytartt/casera-api/internal/config"
"github.com/treytartt/casera-api/internal/dto/requests"
"github.com/treytartt/casera-api/internal/dto/responses"
"github.com/treytartt/casera-api/internal/models"
"github.com/treytartt/casera-api/internal/repositories"
)
// Common errors

View File

@@ -7,10 +7,10 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/treytartt/mycrib-api/internal/config"
"github.com/treytartt/mycrib-api/internal/dto/requests"
"github.com/treytartt/mycrib-api/internal/repositories"
"github.com/treytartt/mycrib-api/internal/testutil"
"github.com/treytartt/casera-api/internal/config"
"github.com/treytartt/casera-api/internal/dto/requests"
"github.com/treytartt/casera-api/internal/repositories"
"github.com/treytartt/casera-api/internal/testutil"
)
func setupResidenceService(t *testing.T) (*ResidenceService, *repositories.ResidenceRepository, *repositories.UserRepository) {

View File

@@ -12,7 +12,7 @@ import (
"github.com/google/uuid"
"github.com/rs/zerolog/log"
"github.com/treytartt/mycrib-api/internal/config"
"github.com/treytartt/casera-api/internal/config"
)
// StorageService handles file uploads to local filesystem

View File

@@ -6,8 +6,8 @@ import (
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/mycrib-api/internal/repositories"
"github.com/treytartt/casera-api/internal/models"
"github.com/treytartt/casera-api/internal/repositories"
)
// Subscription-related errors

View File

@@ -9,10 +9,10 @@ import (
"github.com/rs/zerolog/log"
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/dto/requests"
"github.com/treytartt/mycrib-api/internal/dto/responses"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/mycrib-api/internal/repositories"
"github.com/treytartt/casera-api/internal/dto/requests"
"github.com/treytartt/casera-api/internal/dto/responses"
"github.com/treytartt/casera-api/internal/models"
"github.com/treytartt/casera-api/internal/repositories"
)
// Task-related errors

View File

@@ -8,10 +8,10 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/treytartt/mycrib-api/internal/dto/requests"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/mycrib-api/internal/repositories"
"github.com/treytartt/mycrib-api/internal/testutil"
"github.com/treytartt/casera-api/internal/dto/requests"
"github.com/treytartt/casera-api/internal/models"
"github.com/treytartt/casera-api/internal/repositories"
"github.com/treytartt/casera-api/internal/testutil"
)
func setupTaskService(t *testing.T) (*TaskService, *repositories.TaskRepository, *repositories.ResidenceRepository) {

View File

@@ -3,8 +3,8 @@ package services
import (
"errors"
"github.com/treytartt/mycrib-api/internal/dto/responses"
"github.com/treytartt/mycrib-api/internal/repositories"
"github.com/treytartt/casera-api/internal/dto/responses"
"github.com/treytartt/casera-api/internal/repositories"
)
var (

View File

@@ -13,7 +13,7 @@ import (
"gorm.io/gorm"
"gorm.io/gorm/logger"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/casera-api/internal/models"
)
// SetupTestDB creates an in-memory SQLite database for testing

View File

@@ -8,8 +8,8 @@ import (
"github.com/hibiken/asynq"
"github.com/rs/zerolog/log"
"github.com/treytartt/mycrib-api/internal/services"
"github.com/treytartt/mycrib-api/internal/worker"
"github.com/treytartt/casera-api/internal/services"
"github.com/treytartt/casera-api/internal/worker"
)
// EmailJobHandler handles email-related background jobs

View File

@@ -10,10 +10,10 @@ import (
"github.com/rs/zerolog/log"
"gorm.io/gorm"
"github.com/treytartt/mycrib-api/internal/config"
"github.com/treytartt/mycrib-api/internal/models"
"github.com/treytartt/mycrib-api/internal/push"
"github.com/treytartt/mycrib-api/internal/services"
"github.com/treytartt/casera-api/internal/config"
"github.com/treytartt/casera-api/internal/models"
"github.com/treytartt/casera-api/internal/push"
"github.com/treytartt/casera-api/internal/services"
)
// Task types