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:
@@ -6,7 +6,7 @@ TIMEZONE=UTC
|
||||
SECRET_KEY=your-secret-key-here-change-this-in-production
|
||||
|
||||
# Database Settings (PostgreSQL)
|
||||
POSTGRES_DB=mycrib
|
||||
POSTGRES_DB=casera
|
||||
POSTGRES_USER=postgres
|
||||
POSTGRES_PASSWORD=change-this-secure-password
|
||||
DB_HOST=localhost
|
||||
@@ -26,13 +26,13 @@ EMAIL_PORT=587
|
||||
EMAIL_USE_TLS=true
|
||||
EMAIL_HOST_USER=your-email@gmail.com
|
||||
EMAIL_HOST_PASSWORD=your-app-password
|
||||
DEFAULT_FROM_EMAIL=MyCrib <noreply@mycrib.com>
|
||||
DEFAULT_FROM_EMAIL=Casera <noreply@casera.com>
|
||||
|
||||
# APNs Settings (iOS Push Notifications)
|
||||
APNS_AUTH_KEY_PATH=/path/to/AuthKey_XXXXXX.p8
|
||||
APNS_AUTH_KEY_ID=XXXXXXXXXX
|
||||
APNS_TEAM_ID=XXXXXXXXXX
|
||||
APNS_TOPIC=com.example.mycrib
|
||||
APNS_TOPIC=com.example.casera
|
||||
APNS_USE_SANDBOX=true
|
||||
|
||||
# FCM Settings (Android Push Notifications)
|
||||
|
||||
8
Makefile
8
Makefile
@@ -1,9 +1,9 @@
|
||||
.PHONY: build run test clean deps lint docker-build docker-up docker-down migrate
|
||||
|
||||
# Binary names
|
||||
API_BINARY=mycrib-api
|
||||
WORKER_BINARY=mycrib-worker
|
||||
ADMIN_BINARY=mycrib-admin
|
||||
API_BINARY=casera-api
|
||||
WORKER_BINARY=casera-worker
|
||||
ADMIN_BINARY=casera-admin
|
||||
|
||||
# Build flags
|
||||
LDFLAGS=-ldflags "-s -w"
|
||||
@@ -107,7 +107,7 @@ swagger:
|
||||
|
||||
# Help
|
||||
help:
|
||||
@echo "MyCrib API Go - Available targets:"
|
||||
@echo "Casera API Go - Available targets:"
|
||||
@echo ""
|
||||
@echo "Build:"
|
||||
@echo " deps - Install dependencies"
|
||||
|
||||
10
README.md
10
README.md
@@ -1,6 +1,6 @@
|
||||
# MyCrib API (Go)
|
||||
# Casera API (Go)
|
||||
|
||||
Go implementation of the MyCrib property management API, built with Gin, GORM, Gorush, and GoAdmin.
|
||||
Go implementation of the Casera property management API, built with Gin, GORM, Gorush, and GoAdmin.
|
||||
|
||||
## Tech Stack
|
||||
|
||||
@@ -156,10 +156,10 @@ Seed files are located in `seeds/`:
|
||||
|
||||
```bash
|
||||
# Seed lookup tables (required)
|
||||
cat seeds/001_lookups.sql | dokku postgres:connect mycrib-db
|
||||
cat seeds/001_lookups.sql | dokku postgres:connect casera-db
|
||||
|
||||
# Seed test data
|
||||
cat seeds/002_test_data.sql | dokku postgres:connect mycrib-db
|
||||
cat seeds/002_test_data.sql | dokku postgres:connect casera-db
|
||||
```
|
||||
|
||||
### Test Users
|
||||
@@ -187,4 +187,4 @@ This is a full rewrite that maintains API compatibility. The mobile clients (KMM
|
||||
|
||||
## License
|
||||
|
||||
Proprietary - MyCrib
|
||||
Proprietary - Casera
|
||||
|
||||
@@ -41,9 +41,9 @@ export function UserDetailClient() {
|
||||
const [showPushDialog, setShowPushDialog] = useState(false);
|
||||
const [showEmailDialog, setShowEmailDialog] = useState(false);
|
||||
const [pushTitle, setPushTitle] = useState('Test Notification');
|
||||
const [pushBody, setPushBody] = useState('This is a test push notification from MyCrib Admin.');
|
||||
const [emailSubject, setEmailSubject] = useState('Test Email from MyCrib');
|
||||
const [emailBody, setEmailBody] = useState('This is a test email sent from the MyCrib Admin Panel.');
|
||||
const [pushBody, setPushBody] = useState('This is a test push notification from Casera Admin.');
|
||||
const [emailSubject, setEmailSubject] = useState('Test Email from Casera');
|
||||
const [emailBody, setEmailBody] = useState('This is a test email sent from the Casera Admin Panel.');
|
||||
|
||||
const { data: user, isLoading, error } = useQuery({
|
||||
queryKey: ['user', userId],
|
||||
|
||||
@@ -15,8 +15,8 @@ const geistMono = Geist_Mono({
|
||||
});
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "MyCrib Admin",
|
||||
description: "MyCrib Administration Panel",
|
||||
title: "Casera Admin",
|
||||
description: "Casera Administration Panel",
|
||||
};
|
||||
|
||||
export default function RootLayout({
|
||||
|
||||
@@ -76,7 +76,7 @@ export function AppSidebar() {
|
||||
<SidebarHeader className="border-b px-6 py-4">
|
||||
<div className="flex items-center gap-2">
|
||||
<Building2 className="h-6 w-6" />
|
||||
<span className="font-semibold text-lg">MyCrib Admin</span>
|
||||
<span className="font-semibold text-lg">Casera Admin</span>
|
||||
</div>
|
||||
</SidebarHeader>
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ export function LoginForm() {
|
||||
<Card className="w-full max-w-md">
|
||||
<CardHeader className="space-y-1">
|
||||
<CardTitle className="text-2xl font-bold text-center">
|
||||
MyCrib Admin
|
||||
Casera Admin
|
||||
</CardTitle>
|
||||
<CardDescription className="text-center">
|
||||
Enter your credentials to access the admin panel
|
||||
@@ -53,7 +53,7 @@ export function LoginForm() {
|
||||
<Input
|
||||
id="email"
|
||||
type="email"
|
||||
placeholder="admin@mycrib.com"
|
||||
placeholder="admin@casera.app"
|
||||
value={email}
|
||||
onChange={(e) => setEmail(e.target.value)}
|
||||
required
|
||||
|
||||
4
app.json
4
app.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "mycrib-api",
|
||||
"description": "MyCrib API (Go)",
|
||||
"name": "casera-api",
|
||||
"description": "Casera API (Go)",
|
||||
"scripts": {},
|
||||
"healthchecks": {
|
||||
"web": [
|
||||
|
||||
@@ -12,11 +12,11 @@ import (
|
||||
"github.com/rs/zerolog/log"
|
||||
"gorm.io/gorm"
|
||||
|
||||
"github.com/treytartt/mycrib-api/internal/config"
|
||||
"github.com/treytartt/mycrib-api/internal/database"
|
||||
"github.com/treytartt/mycrib-api/internal/router"
|
||||
"github.com/treytartt/mycrib-api/internal/services"
|
||||
"github.com/treytartt/mycrib-api/pkg/utils"
|
||||
"github.com/treytartt/casera-api/internal/config"
|
||||
"github.com/treytartt/casera-api/internal/database"
|
||||
"github.com/treytartt/casera-api/internal/router"
|
||||
"github.com/treytartt/casera-api/internal/services"
|
||||
"github.com/treytartt/casera-api/pkg/utils"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
@@ -10,12 +10,12 @@ import (
|
||||
"github.com/hibiken/asynq"
|
||||
"github.com/rs/zerolog/log"
|
||||
|
||||
"github.com/treytartt/mycrib-api/internal/config"
|
||||
"github.com/treytartt/mycrib-api/internal/database"
|
||||
"github.com/treytartt/mycrib-api/internal/push"
|
||||
"github.com/treytartt/mycrib-api/internal/services"
|
||||
"github.com/treytartt/mycrib-api/internal/worker/jobs"
|
||||
"github.com/treytartt/mycrib-api/pkg/utils"
|
||||
"github.com/treytartt/casera-api/internal/config"
|
||||
"github.com/treytartt/casera-api/internal/database"
|
||||
"github.com/treytartt/casera-api/internal/push"
|
||||
"github.com/treytartt/casera-api/internal/services"
|
||||
"github.com/treytartt/casera-api/internal/worker/jobs"
|
||||
"github.com/treytartt/casera-api/pkg/utils"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
@@ -2,28 +2,28 @@ services:
|
||||
# PostgreSQL Database
|
||||
db:
|
||||
image: postgres:16-alpine
|
||||
container_name: mycrib-db
|
||||
container_name: casera-db
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
POSTGRES_USER: ${POSTGRES_USER:-mycrib}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-mycrib_dev_password}
|
||||
POSTGRES_DB: ${POSTGRES_DB:-mycrib}
|
||||
POSTGRES_USER: ${POSTGRES_USER:-casera}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-casera_dev_password}
|
||||
POSTGRES_DB: ${POSTGRES_DB:-casera}
|
||||
volumes:
|
||||
- postgres_data:/var/lib/postgresql/data
|
||||
ports:
|
||||
- "${DB_PORT:-5433}:5432" # Use 5433 externally to avoid conflicts
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-mycrib} -d ${POSTGRES_DB:-mycrib}"]
|
||||
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-casera} -d ${POSTGRES_DB:-casera}"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
networks:
|
||||
- mycrib-network
|
||||
- casera-network
|
||||
|
||||
# Redis Cache
|
||||
redis:
|
||||
image: redis:7-alpine
|
||||
container_name: mycrib-redis
|
||||
container_name: casera-redis
|
||||
restart: unless-stopped
|
||||
command: redis-server --appendonly yes
|
||||
volumes:
|
||||
@@ -36,13 +36,13 @@ services:
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
networks:
|
||||
- mycrib-network
|
||||
- casera-network
|
||||
|
||||
# Gorush Push Notification Server
|
||||
# Note: Disabled by default. Start with: docker-compose --profile push up
|
||||
gorush:
|
||||
image: appleboy/gorush:latest
|
||||
container_name: mycrib-gorush
|
||||
container_name: casera-gorush
|
||||
restart: unless-stopped
|
||||
profiles:
|
||||
- push # Only start when push profile is enabled
|
||||
@@ -57,7 +57,7 @@ services:
|
||||
GORUSH_IOS_KEY_PATH: "/certs/apns_key.p8"
|
||||
GORUSH_IOS_KEY_ID: "${APNS_AUTH_KEY_ID}"
|
||||
GORUSH_IOS_TEAM_ID: "${APNS_TEAM_ID}"
|
||||
GORUSH_IOS_TOPIC: "${APNS_TOPIC:-com.example.mycrib}"
|
||||
GORUSH_IOS_TOPIC: "${APNS_TOPIC:-com.example.casera}"
|
||||
GORUSH_IOS_PRODUCTION: "${APNS_PRODUCTION:-false}"
|
||||
GORUSH_ANDROID_ENABLED: "${GORUSH_ANDROID_ENABLED:-true}"
|
||||
GORUSH_ANDROID_APIKEY: "${FCM_SERVER_KEY}"
|
||||
@@ -67,14 +67,14 @@ services:
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
networks:
|
||||
- mycrib-network
|
||||
- casera-network
|
||||
|
||||
# MyCrib API
|
||||
# Casera API
|
||||
api:
|
||||
build:
|
||||
context: .
|
||||
target: api
|
||||
container_name: mycrib-api
|
||||
container_name: casera-api
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "${PORT:-8000}:8000"
|
||||
@@ -88,9 +88,9 @@ services:
|
||||
# Database
|
||||
DB_HOST: db
|
||||
DB_PORT: "5432"
|
||||
POSTGRES_USER: ${POSTGRES_USER:-mycrib}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-mycrib_dev_password}
|
||||
POSTGRES_DB: ${POSTGRES_DB:-mycrib}
|
||||
POSTGRES_USER: ${POSTGRES_USER:-casera}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-casera_dev_password}
|
||||
POSTGRES_DB: ${POSTGRES_DB:-casera}
|
||||
DB_SSLMODE: "${DB_SSLMODE:-disable}"
|
||||
|
||||
# Redis
|
||||
@@ -104,7 +104,7 @@ services:
|
||||
EMAIL_PORT: ${EMAIL_PORT:-587}
|
||||
EMAIL_HOST_USER: ${EMAIL_HOST_USER}
|
||||
EMAIL_HOST_PASSWORD: ${EMAIL_HOST_PASSWORD}
|
||||
DEFAULT_FROM_EMAIL: ${DEFAULT_FROM_EMAIL:-MyCrib <noreply@mycrib.com>}
|
||||
DEFAULT_FROM_EMAIL: ${DEFAULT_FROM_EMAIL:-Casera <noreply@casera.com>}
|
||||
EMAIL_USE_TLS: "${EMAIL_USE_TLS:-true}"
|
||||
|
||||
# Push Notifications
|
||||
@@ -112,7 +112,7 @@ services:
|
||||
APNS_AUTH_KEY_PATH: "/certs/apns_key.p8"
|
||||
APNS_AUTH_KEY_ID: ${APNS_AUTH_KEY_ID}
|
||||
APNS_TEAM_ID: ${APNS_TEAM_ID}
|
||||
APNS_TOPIC: ${APNS_TOPIC:-com.example.mycrib}
|
||||
APNS_TOPIC: ${APNS_TOPIC:-com.example.casera}
|
||||
APNS_USE_SANDBOX: "${APNS_USE_SANDBOX:-true}"
|
||||
FCM_SERVER_KEY: ${FCM_SERVER_KEY}
|
||||
volumes:
|
||||
@@ -131,14 +131,14 @@ services:
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
networks:
|
||||
- mycrib-network
|
||||
- casera-network
|
||||
|
||||
# MyCrib Admin Panel (Next.js)
|
||||
# Casera Admin Panel (Next.js)
|
||||
admin:
|
||||
build:
|
||||
context: .
|
||||
target: admin
|
||||
container_name: mycrib-admin
|
||||
container_name: casera-admin
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "${ADMIN_PORT:-3000}:3000"
|
||||
@@ -155,22 +155,22 @@ services:
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
networks:
|
||||
- mycrib-network
|
||||
- casera-network
|
||||
|
||||
# MyCrib Worker (Background Jobs)
|
||||
# Casera Worker (Background Jobs)
|
||||
worker:
|
||||
build:
|
||||
context: .
|
||||
target: worker
|
||||
container_name: mycrib-worker
|
||||
container_name: casera-worker
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
# Database
|
||||
DB_HOST: db
|
||||
DB_PORT: "5432"
|
||||
POSTGRES_USER: ${POSTGRES_USER:-mycrib}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-mycrib_dev_password}
|
||||
POSTGRES_DB: ${POSTGRES_DB:-mycrib}
|
||||
POSTGRES_USER: ${POSTGRES_USER:-casera}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-casera_dev_password}
|
||||
POSTGRES_DB: ${POSTGRES_DB:-casera}
|
||||
DB_SSLMODE: "${DB_SSLMODE:-disable}"
|
||||
|
||||
# Redis
|
||||
@@ -187,7 +187,7 @@ services:
|
||||
EMAIL_PORT: ${EMAIL_PORT:-587}
|
||||
EMAIL_HOST_USER: ${EMAIL_HOST_USER}
|
||||
EMAIL_HOST_PASSWORD: ${EMAIL_HOST_PASSWORD}
|
||||
DEFAULT_FROM_EMAIL: ${DEFAULT_FROM_EMAIL:-MyCrib <noreply@mycrib.com>}
|
||||
DEFAULT_FROM_EMAIL: ${DEFAULT_FROM_EMAIL:-Casera <noreply@casera.com>}
|
||||
EMAIL_USE_TLS: "${EMAIL_USE_TLS:-true}"
|
||||
|
||||
# Worker settings
|
||||
@@ -201,12 +201,12 @@ services:
|
||||
redis:
|
||||
condition: service_healthy
|
||||
networks:
|
||||
- mycrib-network
|
||||
- casera-network
|
||||
|
||||
volumes:
|
||||
postgres_data:
|
||||
redis_data:
|
||||
|
||||
networks:
|
||||
mycrib-network:
|
||||
casera-network:
|
||||
driver: bridge
|
||||
|
||||
@@ -11,7 +11,7 @@ services:
|
||||
- PORT=8000
|
||||
- DEBUG=true
|
||||
- SECRET_KEY=${SECRET_KEY:-development-secret-key}
|
||||
- POSTGRES_DB=${POSTGRES_DB:-mycrib}
|
||||
- POSTGRES_DB=${POSTGRES_DB:-casera}
|
||||
- POSTGRES_USER=${POSTGRES_USER:-postgres}
|
||||
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-postgres}
|
||||
- DB_HOST=db
|
||||
@@ -28,17 +28,17 @@ services:
|
||||
condition: service_healthy
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- mycrib-network
|
||||
- casera-network
|
||||
|
||||
worker:
|
||||
build:
|
||||
context: ..
|
||||
dockerfile: docker/Dockerfile
|
||||
command: ["./mycrib-worker"]
|
||||
command: ["./casera-worker"]
|
||||
environment:
|
||||
- DEBUG=true
|
||||
- SECRET_KEY=${SECRET_KEY:-development-secret-key}
|
||||
- POSTGRES_DB=${POSTGRES_DB:-mycrib}
|
||||
- POSTGRES_DB=${POSTGRES_DB:-casera}
|
||||
- POSTGRES_USER=${POSTGRES_USER:-postgres}
|
||||
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-postgres}
|
||||
- DB_HOST=db
|
||||
@@ -51,12 +51,12 @@ services:
|
||||
condition: service_healthy
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- mycrib-network
|
||||
- casera-network
|
||||
|
||||
db:
|
||||
image: postgres:15-alpine
|
||||
environment:
|
||||
- POSTGRES_DB=${POSTGRES_DB:-mycrib}
|
||||
- POSTGRES_DB=${POSTGRES_DB:-casera}
|
||||
- POSTGRES_USER=${POSTGRES_USER:-postgres}
|
||||
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-postgres}
|
||||
volumes:
|
||||
@@ -64,13 +64,13 @@ services:
|
||||
ports:
|
||||
- "5432:5432"
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-postgres} -d ${POSTGRES_DB:-mycrib}"]
|
||||
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-postgres} -d ${POSTGRES_DB:-casera}"]
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- mycrib-network
|
||||
- casera-network
|
||||
|
||||
redis:
|
||||
image: redis:7-alpine
|
||||
@@ -85,12 +85,12 @@ services:
|
||||
retries: 5
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- mycrib-network
|
||||
- casera-network
|
||||
|
||||
volumes:
|
||||
postgres_data:
|
||||
redis_data:
|
||||
|
||||
networks:
|
||||
mycrib-network:
|
||||
casera-network:
|
||||
driver: bridge
|
||||
|
||||
2
go.mod
2
go.mod
@@ -1,4 +1,4 @@
|
||||
module github.com/treytartt/mycrib-api
|
||||
module github.com/treytartt/casera-api
|
||||
|
||||
go 1.23.0
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
)
|
||||
|
||||
|
||||
@@ -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 (
|
||||
|
||||
@@ -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 (
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -6,7 +6,7 @@ import (
|
||||
|
||||
"gorm.io/gorm"
|
||||
|
||||
"github.com/treytartt/mycrib-api/internal/models"
|
||||
"github.com/treytartt/casera-api/internal/models"
|
||||
)
|
||||
|
||||
var (
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
|
||||
"gorm.io/gorm"
|
||||
|
||||
"github.com/treytartt/mycrib-api/internal/models"
|
||||
"github.com/treytartt/casera-api/internal/models"
|
||||
)
|
||||
|
||||
var (
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 (
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>© %d MyCrib. All rights reserved.</p>
|
||||
<p>© %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>© %d MyCrib. All rights reserved.</p>
|
||||
<p>© %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>© %d MyCrib. All rights reserved.</p>
|
||||
<p>© %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>© %d MyCrib. All rights reserved.</p>
|
||||
<p>© %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>© %d MyCrib. All rights reserved.</p>
|
||||
<p>© %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>© %d MyCrib. All rights reserved.</p>
|
||||
<p>© %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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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")))
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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 (
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user