package contract import ( "context" "github.com/google/uuid" ) type AccountContract interface { CreateAccount(ctx context.Context, req *CreateAccountRequest) (*AccountResponse, error) GetAccountByID(ctx context.Context, id uuid.UUID) (*AccountResponse, error) UpdateAccount(ctx context.Context, id uuid.UUID, req *UpdateAccountRequest) (*AccountResponse, error) DeleteAccount(ctx context.Context, id uuid.UUID) error ListAccounts(ctx context.Context, req *ListAccountsRequest) ([]AccountResponse, int, error) GetAccountsByOrganization(ctx context.Context, organizationID uuid.UUID, outletID *uuid.UUID) ([]AccountResponse, error) GetAccountsByChartOfAccount(ctx context.Context, chartOfAccountID uuid.UUID) ([]AccountResponse, error) UpdateAccountBalance(ctx context.Context, id uuid.UUID, req *UpdateAccountBalanceRequest) error GetAccountBalance(ctx context.Context, id uuid.UUID) (float64, error) }