Actions Directory
Location: src/actions/
Purpose: Contains Server Actions for form submissions and mutations. These are Next.js Server Actions that run on the server and handle data modifications.
Structure
actions/
├── auth/ # Authentication actions
│ ├── block-action.ts # Block/unblock user accounts
│ ├── profile-update.ts # Update user profile
│ ├── sign-in-action.ts # User sign-in
│ ├── sign-out-action.ts # User sign-out
│ └── sign-up-action.ts # User registration
│
├── camapaign-rates/ # Campaign rate management
│ ├── create-rate-action.ts # Create new campaign rate
│ └── update-rate-action.ts # Update existing rate
│
├── campaign/ # Campaign CRUD operations
│ ├── create-campaign-action.ts # Create new campaign
│ └── update-campaign-action.ts # Update existing campaign
│
├── credentials/ # External service credentials
│ ├── create-credentials-action.ts
│ └── update-credentials-action.ts
│
├── permission-sets/ # Responsibilities management
│ ├── create-new-permission-sets-action.ts
│ └── update-permission-sets-action.ts
│
├── petition/ # Petition operations
│ ├── create-circulator.ts # Create circulator record
│ ├── create-petition-action.ts # Create new petition
│ ├── update-petition-action.ts # Update petition
│ └── updatePetitionFormat.ts # Update petition format
│
├── role-based-acess/ # Role and permission management
│ ├── add-role-permission-action.ts
│ ├── create-new-role-action.ts
│ ├── create-permissionsKeys-action.ts
│ ├── update-permissionsKeys-action.ts
│ └── update-role-action.ts
│
├── signatures/ # Signature operations
│ └── submitSignatures.ts # Submit collected signatures
│
├── teams/ # Team management
│ ├── accept-campaign-invite-action.ts
│ ├── accept-invite-action.ts
│ ├── add-sub-team-action.ts
│ ├── create-teams-action.ts
│ ├── member-role-update-action.ts
│ ├── set-active-team-session.ts
│ ├── update-sub-team-action.ts
│ └── update-team-action.ts
│
├── transactions/ # Transaction management
│ ├── create-transaction-action.ts
│ └── update-transaction-action.ts
│
├── city-search.ts # City search utility
├── credentials-search.ts # Credentials search
├── place-search.ts # Place/location search
├── search-address.ts # Address search
└── team-search.ts # Team search utility
Key Characteristics:
- All files use
"use server"directive - Type-safe with TypeScript
- Return standardized
FormStateorQueryResponsetypes - Handle validation using Zod schemas
- Interact with Supabase via service layer