domain

package
v0.1.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 28, 2025 License: MIT Imports: 10 Imported by: 0

Documentation

Overview

Package domain provides domain services and their dependency injection setup. This module is responsible for providing domain services and interfaces, while keeping implementation details in the infrastructure layer.

The domain layer follows clean architecture principles: - Entities: Core business objects - Services: Business logic and use cases - Repositories: Data access interfaces - Events: Domain events for cross-cutting concerns

Index

Constants

This section is empty.

Variables

Module provides all domain layer dependencies

Functions

func NewFormService

func NewFormService(p FormServiceParams) (form.Service, error)

NewFormService creates a new form service with dependencies

func NewUserService

func NewUserService(p UserServiceParams) (user.Service, error)

NewUserService creates a new user service with dependencies

Types

type FormServiceParams

type FormServiceParams struct {
	fx.In

	Repository form.Repository
	EventBus   events.EventBus
	Logger     logging.Logger
}

FormServiceParams contains dependencies for creating a form service

type StoreParams added in v0.1.5

type StoreParams struct {
	fx.In
	DB     database.DB
	Logger logging.Logger
}

StoreParams groups store dependencies

type Stores added in v0.1.5

type Stores struct {
	fx.Out
	UserRepository           user.Repository
	FormRepository           form.Repository
	FormSubmissionRepository form.SubmissionRepository
}

Stores groups all store implementations

func NewStores added in v0.1.5

func NewStores(p StoreParams) (Stores, error)

NewStores creates new store instances with proper validation and error handling

type UserServiceParams

type UserServiceParams struct {
	fx.In

	Repo   user.Repository
	Logger logging.Logger
}

UserServiceParams contains dependencies for creating a user service

Directories

Path Synopsis
common
errors
Package errors provides domain-specific error types and utilities for consistent error handling across the application.
Package errors provides domain-specific error types and utilities for consistent error handling across the application.
events
Package events provides event handling infrastructure for the domain layer.
Package events provides event handling infrastructure for the domain layer.
interfaces
Package interfaces provides common interfaces used throughout the domain layer for validation, repositories, and other cross-cutting concerns.
Package interfaces provides common interfaces used throughout the domain layer for validation, repositories, and other cross-cutting concerns.
repository
Package repository provides common repository interfaces and utilities for data access patterns used throughout the domain layer.
Package repository provides common repository interfaces and utilities for data access patterns used throughout the domain layer.
Package entities provides domain entities that represent the core business objects in the application, including users, forms, and other domain models.
Package entities provides domain entities that represent the core business objects in the application, including users, forms, and other domain models.
Package form provides form-related domain services and business logic.
Package form provides form-related domain services and business logic.
event
Package event defines domain events and event interfaces for form-related actions.
Package event defines domain events and event interfaces for form-related actions.
events
Package form provides form-related domain events and event handling functionality for managing form lifecycle and state changes.
Package form provides form-related domain events and event handling functionality for managing form lifecycle and state changes.
model
Package model contains domain models and error definitions for forms.
Package model contains domain models and error definitions for forms.
Package user provides user repository interfaces for domain persistence.
Package user provides user repository interfaces for domain persistence.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL